Forum: Mikrocontroller und Digitale Elektronik ISR abfrage des WDT


von Luigi Di Carmino (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen. Ich habe mir aus testzwecken ein myavr-board zugelegt
mit einem ATMEL8L. Als Software benutze ich AVR-Studio 4.12 zusätzlich
habe ich WINAVR installiert.

In dem Programm lasse ich eine AD-Wandlung kontinuierlich durchlaufen.
Davor habe ich den WDG scharf gestellt.
Ich möchte nun wenn der WDG nicht resetet wird, durch einen
entsprechende Interruptbehandlung, diesen Zustand abfangen und eine LED
am PortC Pin5 zum leuchten bringen. Leider habe ich keinen Anhaltspunkt
mehr wo ich weiter machen könnte.
Wenn ich in dem Programm die Zeile mit

//wdt_reset();

rauskommentiere sollte es doch eigentlich schon klappen oder nicht?
Der Reset wird dann immer wieder ausgeführt.

von Andreas Bombe (Gast)


Lesenswert?

Die AVRs haben doch keinen WDT Interrupt, so weit ich das sehen kann.
Die machen immer einen Reset wenn der WDT auslöst, du kommst also mit
frisch initialisiertem AVR wieder oben in main() rein.

Aber du kannst aus dem MCUCSR den Auslöser des letzten Resets lesen und
auf Auslöser = WDT reagieren.  Aber nicht vergessen, die Flags gleich
danach zu löschen, die bleiben sonst auch über den nächsten Reset und
du kannst die Quelle nicht mehr zuverlässig identifizieren.

Wenn du nach einer bestimmten Zeit wirklich einen Interrupt auslösen
willst, musst du einen der Timer verwenden.

von Luigi Di Carmino (Gast)


Lesenswert?

Ja mit dem Timer habe ich das Problem auch gelöst bekommen wollte es
aber  unbedingt mit dem WDT realisieren... das das nicht so ohne
weiteres geht erklärt auch warum ich nach 2 Stunden Referenzen lesen
und Forensuche nicht zum Ziel gekommen bin. Ich danke dir für deine
schnelle antwort.

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.