Forum: Mikrocontroller und Digitale Elektronik LPC17xx Interrupts


von Lars (Gast)


Lesenswert?

Hi,

ich hab bei mir I2C am laufen mit Interrupts (µController: LPC1758). 
Jetzt möchte ich gerne noch eine Polling-Routine einbauen, die den 
Status vom I2C zurückliefert. Dieser Status wird aber in der 
Interrupt-Routine ständig angepasst.
1
uchar GetI2CState(void)
2
{
3
  NVIC_DisableIRQ(I2C1_IRQn);
4
//get status 
5
  NVIC_EnableIRQ(I2C1_IRQn);
6
7
}

Jetzt kann es doch sein, dass gerade während ich den I2C Interrupt 
ausgeschaltet habe, einer ankommt. Was muss ich machen, damit dieser 
Interrupt trotzdem von meinem Programm wahrgenommen wird, sobald der 
Interupt wieder aktiviert ist?
Muss ich hierfür irgendwo "NVIC_GetPendingIRQ" aufrufen?

Gruß
Lars

von Kaj (Gast)


Lesenswert?

Das sollte im Datenblatt stehen.

Keine Ahnung wie es bei dem LPC ist, aber bei meinen AVRs ist es so, das 
der Interrupt bearbeitet wird, sobald die Interrupts wieder scharf 
geschaltet werden.

Gruesse

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.