Moin!
Ich wollte nun meinem Gebastel den letzten Schliff verpassen und noch einen Watchdog implementieren, der im Falle irgendeines Fehlers die mcu resettet.
Dabei habe ich mich an das Datasheet des ATmega8515 gehalten:
während des inits:
| Code : |
;***** WATCHDOG
; ldi tempL, (1<<WDE)|(1<<WDP2)|(1<<WDP1)
; out WDTCR, tempL
; wdr |
|
Die semikolons habe ich erst am Ende eingefügt, um alles wieder lauffähig zu bekommen...
Das setzen von WDCE ändert nichts am Fehler.
Der Watchdog soll während einer Timer0-Overflow ISR mit "wdr" resettet werden. (Die mcu läuft auf 8MHz und Timer0 arbeitet auf clk/1024)
Das Problem:
Der Watchdog resettet unabhängig vom wdr meine mcu und scheint sich nicht im geringsten für seinen Prescaler zu interessieren.
(Der komplette Code ist knapp 1,5k groß - deswegen habe ich jetzt nicht alles vollgemüllt...)
Es wäre nett, wenn ihr mir sagen könntet, wo ich Blödsinn gemacht habe - oder wenn Ihr mir eine Minimalapplikation mit (funktionierendem) WD posten könnetet...
Grüße, - der momentan ziemlich verzweifelte - Hendrik