Tänkte att jag skulle utnyttja mitt medlemsskap lite...

Jag har pulat lite med en rotationssensor som jag har tänkt skall räkna upp/ned (CW/CWC) på en variabel, vilkets värde sedan skall skrivas till en LCD. Sensorn ger pulser på två ben, varav det ena är fasvridet 90grader. Dessa båda är försedda med varsitt pull-up och går sedan till PortC på en PIC16F877A (20MHz).
Kom över denna snutt på nätet:
Kod: Markera allt
char M;
char E;
.
.
M = 0x64;
E = 0;
.
.
while (1) {
E.F0 = PORTC.F6;
E.F1 = PORTC.F7;
if (E == 0b0001) M--;
if (E == 0b0100) M++;
E.F2 = E.F0;
E.F3 = E.F1;
.
.
}
Någon måste nog ha en bättre lösning.
Jag har skrivit ett program tidigare (i mBasic, iofs) som fungerade bra, men då använde jag mig av en flip-plop och två and-grindar, innan PIC:en, så man enbart få pulser på ena benet vid CW och vise versa. Men den lösningen har jag inte tillgång till i nuläget. Externa interupt är inte heller något som kan användas nu. Måste använda PORTC.
Är inte speciellt i bevandrad i programmeringsmetoder, så hjälp mottages tacksamt.
Sov gott!