Moin, ich verwende einen Atmega1284P, der hat eine WDT Interrupt. Dazu hätte ich ein paar Fragen. In einem Programm verwende ich dieses WDT Interrupt, aber teilweise benutzte ich die cli() Funktion, weil ich in manchen Funktionen nicht von interrupts unbrochen werden darf. Aber ich diesen Funktionen kann es auch passieren, das sich der MC aufhängt. Wird das Interrupt dann trotzdem ausgeführt, oder muss ich nach jedem Cli das Bit für das WDT Interrupt wieder setzten? Wenn das Inetruppt ausgelöst wird, sende ich noch ein paar Daten zum PC, kommt beim Verlassen ein automatischer Reset, oder muss ich den per hand auslösen? MfG Philipp
Hallo, nach einem CLI werden bis zum nächsten SEI keinen Interrupts ausgeführt. Allerdings gehen die Interrupts, die nach einem CLI auftreten, nicht verloren, sondern werden nach dem SEI ausgeführt. Tritt ein Interrupt nach dem CLI 2 Mal auf, wird er nach dem SEI trotzdem nur 1 Mal ausgeführt. Ob ein Reset nach dem WDT-Interrupt kommt, kannst du in den WDT-Steuernbits / in den Fusebits einstellen (glaube ich, habe ich noch nicht gemacht). Gruß Jonathan
Ok, danke. Wie sieht das eig. beim UART_RX Interrupt aus. Wenn wärend alle Interrupts aus waren, und wärenddessen 2 oder mehr Zeichen im Hardware Buffer ankommen, wird das UART_RX Interrupt nach dem sei() dann auch nur einmal ausgeführt? Oder solange, bis der Hardware Buffer leer ist? MfG Philipp
Schade nur, wenn das Programm hängt ud sei() nicht mehr ausgeführt werden kann. In dem Fall solltest du dann nicht mit cli() arbeiten, sondern alle aktivierten Interrupts außer dem Watchdog einzeln per Hand abschalten.
Philipp Maricek schrieb: > Wie sieht das eig. beim UART_RX Interrupt aus. Ich denke das sind alles Sachen, die du im Datenblatt nachlesen solltest. Kommst du eh nicht drumrum.
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.