PIC IRQ
bela
bagameri at freestart.hu
Thu Nov 17 11:18:21 CET 2005
> A PIC mikrokontrollereket nálam sokkal jobban ismerőktől kérdem. Hogy
> lehetne azt megoldani, hogy egy interrupt kérés után, ha az interrupt
> lefutott, a RETI után egy előre meghatározott címre ugorjon a a proci.
> Tehát ne a megszakított programot fojtassa. Könnyű annak akinek van
> PUSH, POP utasítása, de a 16Fxx es piceknek tudtommal nincs. Ennek
> ellenére van valami megoldás?
Hogy miért akarsz ilyet csinálni, az bevallom, nem értem, de mindegy.
RETI utasítás nincs PIC-en, hanem RETFIE van helyette.
Amikor beüt egy IT kérés, akkor a proci a stack-re nyomja a
programszámláló aktuális állását. Csak ezt, semmi mást. Az összes többi,
számodra fontos regisztert neked kell eltenni.
Ha valami miatt a stack (8 szintű) túlcsordul, akkor (16F sorozatról
írok) nem történik semmi, kivéve, hogy a stack legalján levő cím elvész.
Nincs e miatt reset, nincs stack over/underflow jelzés sem.
Mindezek miatt úgy gondolom, hogy ha az IT rutin végére nem a RETFIE
utasítást teszed, hanem GOTO akármi-t, akkor megvalósul, amit szeretnél.
Ha az interruptra továbbra is szükséged van, akkor ott, ahová az IT
rutin után ugrasz, beírod, hogy BSF INTCON,GLIE és ezzel szerintem kész
is vagy.
Mindez elméleti okfejtés, sose csináltam még ilyet.
--
üdv: béla
More information about the Elektro
mailing list