Re: Incremental Encoder lekezelése

Kardos Péter chiplev at freemail.hu
Fri May 20 14:35:52 CEST 2005


Sziasztok!

Mindenkinek köszönöm aki segített a múltkor, végre sikerült egy elfogadható 
encoder lekezelést írni a Phier Incremental Encoderre.
Pintér Dezső programja volt az alap ami nagyon jól működik, de nekem még 
jobb kellett. Átírtam hogy megszakításból is jól működjön. A encodert még 
kiegészítettem a katalógos szerinti test circuit áramkörrel, de 10nf helyett 
100nF-ot használok. A PORTB felhúzó ellenállásai ki vannak kapcsolva, nem 
kellenek.
És íme itt a program:

if((RBIF)&&(RBIE))
    {
    RBIF=0;
    new = PORTB&0x30;
    if (old!=new)
        {
        if(0x20&(new^(old<<1))) {c_red++;}
        else {c_red--;}
        old = new;
        }
    }

Üdv:

Kardos Péter

----- Original Message ----- 
From: "Pintér Dezső" <skandi at t-email.hu>
To: "Kardos Péter" <elektro at tesla.hu>
Sent: Tuesday, May 03, 2005 3:25 PM
Subject: Re: Incremental Encoder lekezelése


> Hello Kardos,
>
> Én pic-re assemblyben ezt használom.
> Négyszeres felbontás, 3 byte-ot számol.
> Igaz nem megszakításból, így viszont 80 kHz-ig jó.
> Ha nagyon pontos kell, akkor kell két d-flop a bemenetekre.
>
> ------------------------
> dgomb:
>                movf    porta,w
>                andlw   3
>                movwf   new
>                movwf   temp
>                xorwf   old,w
>                btfsc   status,z
>                return
> ;
>                bcf     status,c
>                rlf     old,f
>                movf    new,w
>                xorwf   old,f
>                btfsc   old,1
>                goto    felszam
> ;
>                decf    pos_l,f
>                movf    pos_l,w
>                xorlw   0ffh
>                btfss   status,z
>                goto    endgomb
>                decf    pos_m,f
>                movf    pos_m,w
>                xorlw   0ffh
>                btfss   status,z
>                goto    endgomb
>                movf    pos_l,w
>                xorlw   0ffh
>                btfsc   status,z
>                decf    pos_h,f
> endgomb:
>                movf    new,w
>                movwf   old
>                return
> felszam:
>                incfsz  pos_l,f
>                goto    endgomb
>                incfsz  pos_m,f
>                goto    endgomb
>                incf    pos_h,f
>                goto    endgomb
>
> -- 
> Best regards,
> Pintér                            mailto:skandi at t-email.hu
>
> -----------------------------------
> Szponzorunk: http://tonerbolt.hu/
> 




More information about the Elektro mailing list