Hallo,
ich habe am WE ein bisschen mit der WATCHDOG-Funktion getestet und da 
habe ich ein kleine Problem.
Ich binde die Datei "<avr/wdt.h>" ein.
Und hier dann mein etwas verkürzter Sourcecode:
| 1 | int main(void)
 | 
| 2 | { 
 | 
| 3 |     wdt_disable();  //disable for startup
 | 
| 4 |     
 | 
| 5 |     uart_init(); //for DEBUG 
 | 
| 6 | 
 | 
| 7 |     //ein paar Init-Funktionen    
 | 
| 8 |  
 | 
| 9 |     uart_puts("Init Timer...\n\r"); 
 | 
| 10 |     TimerInit(); // initialize timer
 | 
| 11 |     
 | 
| 12 |     wdt_enable(WDTO_2S);
 | 
| 13 |    
 | 
| 14 |     sei (); 
 | 
| 15 |     while(1)
 | 
| 16 |     {   
 | 
| 17 |             //MAINLOOP
 | 
| 18 |         //wdt_reset(); //zum testen auskommentiert
 | 
| 19 |     }
 | 
| 20 | }
 | 
Da ich ja in der Main-Schleife den wdt_reset auskommentiert habe, 
schlägt der Watchdog nach 2 Sekunden zu - dies passt noch zu meinem 
Verständnis.
Auf der Seriellen Schnittstelle stehe ich da, in dem der Text "Init 
Timer..." erscheint.
Nur wird jetzt aber ständig der Text "Init Timer" ausgegeben - in ein 
paar ms Abstand.
Müsste nicht der Watchdog am Programmstart beendet werden und dann mit 
den 2 Sekunden wieder beginnen  ?
Wo habe ich hier meinen Denkfehler bei der verwendung von Watchdogs ?
Gruß,
Michi