Prerušenie u PIC16Fxxx
Moderátor: Moderátoři
Prerušenie u PIC16Fxxx
Chcem sa opýtať ako to je u PIC 16Fxxx keď počas výkonu prerušenia
napríklad od pinov RB7/4 dôjde k pretečeniu TMR0 a v reg.INTCON je povolené aj prerušenie od TMR0 aj od zmeny na pinoch RB7/4.
Potrebujem vedieť či je požiadavka na prerušenie od TMR0 odignorovaná alebo či bude spracovaná po ukončení toho prerušenia ktoré "prišlo skôr na rad".Prípadne či je možné niekde nastaviť priority vo výkone rozličných prerušení.
Vopred ďakujem.Relatko.
Ďakujem za odpovede,pozliepal nasledovný testovací program.Pozrete sa naň prosím či by to mohlo fungovať.Som trochu zaskočený tým že po skončení obluhy druhého prerušenia ,sa dvakrát po sebe obnovujú registe zálohované na začiatku prerušenia.Keď sa obnovujú prvý krát,tak vďaka inštrukcii swapf sa zmení obsah W_save a pri druhom obnovení reg.ho takýto zmenený načíta do W reg.Program pokračuje na šťastie tam kde skončil v maine po vyvolaní prvého prerušenia.Tento stav sa udeje samozrejme len vtedy,keď počas jedného prerušenia príde požiadavka aj na druhé.Prioritu má prerušenie od TMR0
pred prer.od RB0.Platí to len dovtedy,kým nepríde na :
PRERUS BTFSC INTCON,2 ; bolo prerušenie od TMR0 ???
GOTO PRER01 ; bolo od TMR0 !!!
BTFSC INTCON,1 ; bolo prerušenie od RB0 ???
GOTO PRERO ;áno bolo od RB0 !!!
GOTO PRERKON ; nezname = nic
selekciu prirít.Pokiaľ aj príde požiadavka na prer.od TMR0 počas výkonu
obsluhy prer. od RB0,musí si počkať na ukončenie obsluhy vykonávaného prer.od RB0 a až po jej ukončení pokračuje obsluhou prer.od TMR0
Budem rád za prípadné rady ,ako vylepšiť tento program ako aj za vysvetlenie toho pre mńa záhadného dvojnásobného obnovovania reg. na konci prerušenia.
Relatko.
- Přílohy
-
- prerusenie.asm
- (2.3 KiB) Staženo 127 x