[Linux-programlama] Re: usb servo motor kontrolü..

---------

[Linux-programlama] Re: usb servo motor kontrolü..

From: Okan Akyüz <okanakyuz_at_okanakyuz.com>
Date: Tue, 20 Jan 2009 16:29:11 +0200
Message-ID: <000d01c97b0b$8681a5b0$9384f110$@com>

Haa o zaman şöle yapın..
[ORG 0]

            jmp 07C0h:start ; Goto segment 07C0

    start:
            ; Update the segment registers
            mov ax, cs
            mov ds, ax
            mov es, ax

    aski: ; Programı askiya al
                call sleepprog
                call voltajout
                call sleepprog
                call voltajstop
                jmp aski

    times 510-($-$$) db 0
    dw 0AA55h
        sleepprog:
                .args:
                        or esi,esi
                        jz .toexit
                        mov edi,esi
                        xor eax,eax
                        xor ebx,ebx
                        xor edx,edx
                .next_digit:
                        lodsb
                        sub al,'0'
                        jb .done
                        cmp al,9
                        ja .done
                        imul ebx,byte 10
                        add ebx,eax
                        adc edx,byte 0
                        jmps .next_digit
                .done:
                        mov eax,ebx
                        test edx,edx
                        jnz .ok
                        test eax,eax
                .toexit:
                        jz do_exit
                .ok:
                        mov ebx,1
                        or ch,ch
                        jz .nousleep

                        ; 1000000 yerine mikrosaniye bekleme değeri yazın
                        mov ebx, 1000000
                        div ebx
                        xchg eax,edx
                        mov ecx,edx
                        mov ebx,1000
                        mul ebx
                        mov edx,ecx
                        xchg eax,edx
                        jmps .set_sleep2

                .nousleep:
                        mov cl,byte [esi - 1]
                        test cl,cl
                        jz .set_sleep
                .s:
                            cmp cl,'s'
                        jz .set_sleep2
                .m:
                        mov ebx,60
                        cmp cl,'m'
                        jz .set_sleep
                .h:
                        mov ebx,60*60
                        cmp cl,'h'
                        jz .set_sleep
                .d:
                        mov ebx,60*60*24
                        cmp cl,'d'
                        jz .set_sleep
                        cmp cl,'n'
                        jnz do_exit
                        xchg eax,edx
                        jmps .set_sleep2
                .set_sleep:
                        mul ebx
                .set_sleep2:
                        mov ebx,t
                .nanosleep:
                        mov dword [ebx],eax
                        mov dword [ebx+4],edx
                .do_sleep:
                        jmp .args
                        ret;
        voltajout:
                out 58f7H,FFFFH
                ; ya bunu salladım port numarası ne bilmiyorum bakmaya da
üşendim.
                ret;
        voltajstop:
                out 58f7H,0H
                ; ya bunu salladım port numarası ne bilmiyorum bakmaya da
üşendim.
                ret;
END

Bu IA86 kodunu nasm ile derleyin tabi önce düzenleme yapın... sonra rawwrite
ile diskete yazın veya dümdüz diskete dev sürücüsünden kopyalayın. Disketler
0AA55h imzasına sahipse boot edilebilir demektir .o zamanda disketteki veri
07C0h pointerinden boot olur.. Bu program 1 saniyede bir bir porta voltaj
yolluyor acıp kapıyor. O kısmı parametrik yapabilirsiniz. AT&T yazmakla
uraşmadım. Linux programı değil kendi başına birOS oldu ama ne bilim. Fikir
vermesi güzel olur. NOT kodu derlemeim iş yerindeyim..

-----Original Message-----
From: linux-programlama-bounces_at_liste.linux.org.tr
[mailto:linux-programlama-bounces_at_liste.linux.org.tr] On Behalf Of Rüştü
Derici
Sent: Tuesday, January 20, 2009 3:51 PM
To: Özgür yazılımlarla çeşitli dillerde yazılım geliştirme
Subject: [Linux-programlama] Re: usb servo motor kontrolü..

hehehe amaç zaten harici bir şey koymamak .. çok kolay bir mevzu değil
tabii ki .. donanım programlama konusunda birazcık derinleşmek ve
hatta belkide çekirdekte çözmek gerekebilir emin değilim..neticede bir
sinyal üreticisi gerekiyor ki cpu muz var ..ve zamanlayıcı olarakta
ram de çalıştıracak bir nanosleep() ile milisecond düzeyinde
beklemeler ile halledilebilir..harici bir chip bize bağlanabileceğimiz
bir yer veriyor ama arkada yaptıkları bizim bilgisayarda rahatlıkla
yapabileceğimiz işlemler neticede..

sorun usb üzerinden ürettiğimiz sinyalleri motora bir arayüz
olmaksızın ,direk verebilmek ..:)
hikaye burda karışıyor..

2009/1/20 Okan Akyüz <okanakyuz_at_okanakyuz.com>:
> Aslında eğer harici bir şey yapılacaksa PWM çevirici araya konabilir.
Basit
> devre şeması şöyle.
>
http://homepages.which.net/~paul.hills/Circuits/PwmGenerators/DigitalRegiste
> rCct.gif
>
>
> -----Original Message-----
> From: linux-programlama-bounces_at_liste.linux.org.tr
> [mailto:linux-programlama-bounces_at_liste.linux.org.tr] On Behalf Of Rüştü
> Derici
> Sent: Tuesday, January 20, 2009 11:38 AM
> To: Özgür yazılımlarla çeşitli dillerde yazılım geliştirme
> Subject: [Linux-programlama] Re: usb servo motor kontrolü..
>
> hmm çok mantıklı :D
> biraz hile karıştırmış oluyoruz işin içine ama gerçekten de
> olabilir..bir ses alıcısı ve vericisiyle uzaktan bile yapılabilir
> iletişim bu şekilde :)
>
>
>> Bugün (sanırım)listeye üye olmayan bir meslektaşımdan başka bir fikir
>> daha geldi. PWM üretmek için ses kartı da kullanılabilir. Bana son
>> derece mantıklı geldi.
>>
>> Caglar
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Tue 20 Jan 2009 - 15:19:12 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.