PIC ASM jak na porovnání
Hynek Sladky
econf na centrum.cz
Čtvrtek Červen 28 09:41:58 CEST 2012
movf MISSED_EDGES,W
sublw RESET_MAX-1
btfss status,C
call RESET_NOW
Instrukce sublw k nastavi Carry, pokud k>=W
Test na Zero bych nepouzival, pokud muze nastat, ze se promenna
inkrementuje vickrat, nez se povede vyhodnotit...
Hynek Sladky
Dne 28.6.2012 9:04, Milan Cizek napsal(a):
> Ahoj,
> potřeboval bych poradit s asi triviální věcí v asm pro PIC16F629. :-)
>
> V RAM mám proměnou MISSED_EDGES, pokud příde na GP2 rising edge, tuto
> proměnou v přerušení nuluju. V main programu pak mám něco jako
>
> call WAIT10s
> incf MISSED_EDGES,F ; +1 každých 10s, GP2 přerušení (detekce hrany) nám
> nuluje
> ;call RESETNOW
> goto $-2
>
> Potřebuji nějak porovnat a volat RESET_NOW, pokud MISSED_EDGES dosáhne
> hodnoty např. 50 (konstanta RESET_MAX), ale nějak nevím jak to
> správně/korektně provést.
> Možná odečíst od MISSED_EDGES RESET_MAX a otestovat Z flag, popř. C flag?
> Byl bych vděčný za nějaký příklad, díky moc. :-)
>
> Milan
>
Další informace o konferenci Hw-list