Ich habe einen Interrupt-Uart im Xmega implementriert. USARTE0.CTRLA = USART_RXCINTLVL_HI_gc; //RX interrupt high level PMIC.CTRL = PMIC_HILVLEN_bm; // High level Interrupt enable Jetzt springt mein Programm auch in den : ISR(USARTE0_RXC_vect) { receivedData = USARTE0.DATA; } Will da aber nicht mehr zurück in das Main. Bzw. der Controller macht einen Reset.
Das liegt: a) am Watchdog b) an einer fehlerhaften Programmierung c) an einem falschen Interruptvektor, der in´s NIX springt.
Ich kenne den Compiler nicht aber fehlt da vielleicht noch ein #pragma interrupt vor der Interrupt Funktion? Der Compiler versteht ja nicht das, das eine Besondere Funktion ist die mit IRET beendet werden muss.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.