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