Gast
#672165
Hallo! Wer kann mir bei folgendem Problem mit einem NXP LPC2148 helfen: In meinem Programm tritt in sehr seltenen Fällen ein "Spurious interrupt" auf. Dafür habe ich eine Interruptroutine geschrieben, die die Interruptanforderung löschen soll. Der Interrupt wird durch Timer 1 ausgelöst. Jetzt tritt das Problem auf, dass das Löschen der Interruptanforderung nicht gelingt. Sofort nach dem Verlassen der Int.routine wird sie neu aufgerufen. Damit hängt sich mein Programm auf. Hier die Interruptroutine: __irq __arm void default_ISR() { //Interruptflags der Interruptquellen löschen EXTINT|=1<<2; //Interruptflag EINT2 löschen T0IR=0xFF; //Interruptflag T0 löschen T1IR=0xFF; //Interruptflag T1 löschen I2C0CONCLR=0x00000008; //I2C-Interrupt-Flag löschen VICVectAddr = 0; //VICVectAddr löschen } Laut Register VICIRQSTATUS liegt nur der Timer1-Interrupt an. Er sollte mit T1IR=0xFF eigenlich gelöscht werden. Wo liegt der Fehler?