Forum: Mikrocontroller und Digitale Elektronik WDT Interrupt trotzdem nach cli? Mega1284P


von Philipp M. (lord-maricek)


Lesenswert?

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

von Jonathan S. (joni-st) Benutzerseite


Lesenswert?

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

von Philipp M. (lord-maricek)


Lesenswert?

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

von Lutz (Gast)


Lesenswert?

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.

von Lutz (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.