Sida 1 av 1

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

Postat: 10 oktober 2008, 19:47:12
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.

Postat: 10 oktober 2008, 19:54:38
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.

Postat: 10 oktober 2008, 20:04:15
av AndersG
OK. Tack!