Interrupts som inträffar när interrupts är av (PIC)

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9127
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Interrupts som inträffar när interrupts är av (PIC)

Inlägg av AndersG »

Hej

"When an instruction that clears the GIE bit is executed, any
interrupts that were pending for execution in the next cycle are
ignored. The CPU will execute a NOP in the cycle immediately
following the instruction which clears the GIE bit. The interrupts
witch were ignored are still pending to be serviced when the GIE bit
is set again."

Blir inte 100% klok på vad Note 2 på sid 208 i PIC16F690 datasheet, så jag frågar här:

Om jag har en interrupt som triggas av en timeroverflow och interrupt är avstängda (GIE) då overflow sker. Kommer jag då att få en interrupt då jag slår på interrupt igen, eller måste jag manuellt kolla TMR1IF?

Orsaken är att jag har en bitbang seriell kommunikation där jag helst vill stänga av interrupts under en kort tid (ca 1ms). Alternativt måste jag kolla om en interrupt inträffat under kommunikationen och försöka igen.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Ja, om en interrupt uppstår under avstängt GIE så att flaggan finns aktiverat kommer den interrupt att utlösas när GIE aktiveras igen. Om du, innan du aktiverar GIE, nollar de IF som kan finnas kommer en enabling av GIE inte att utlösa en interrupt direkt.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9127
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Inlägg av AndersG »

OK. Tack!
Skriv svar