Watchdog reagiert nicht auf Absturz

OP #2719448
Lesenswert?

Hallo

Bei meiner H-Brücke für das Projekt wollte ich zur sicherheit den 
Watchdog aktivieren, da es immer wieder mal vorkommt das sich der Atmega 
aufhängt.
Das Problem ist das sich der Atmega nicht komplett aufhängt sondern 
manchmal einfach nur die Richtungs-LEDs nicht mehr schaltet. Daher 
wollte ich den Watchdog verwenden.
1
/*
2
 * Motor_0_2.c
3
 *
4
 * Created: 12.06.2012 07:33:59
5
 *  Author: Christoph
6
 //LINKS
7
 */ 
8

9
#include <avr/io.h>
10
#include <Aura/aura_motor_lib_0_2.h>
11
#include <avr/wdt.h>
12

13
int main(void)
14
{
15
  CLOCK_INIT();
16
  PSC2_Init();
17
  INIT_SLAVE_2();
18
  
19
    while(1)
20
    {
21
    
22
    wdt_enable(WDTO_120MS);
23
    
24
     PSC2();
25
     READ_SPI_TO_RAM();
26
     ON_OFF();
27
     Regelung_Links();
28
     Richtung();
29
     wdt_reset();   
30
     
31
    }
32
}

so weit so gut.
Wenn sich der Atmega einmal aufhängt hilft auch der Reset Knopf nicht 
mehr. Ich muss komplett den Atmega vom Strom nehmen um ihn neu zu 
starten.
Wieso? Auserdem löst der Watchdog nicht immer aus. Teilweise gehen die 
LEDs nicht mehr aber der Atmega wird nicht resetet.

Schönen Abend
Christoph
#2719464
Lesenswert?

Wenn Reset nichts nützt, dann ist es egal ob der WDT anspricht, der 
macht auch nichts anderes. Dann hast du ein ernstes Hardware-Problem.

... schrieb:
> würde ich aus der Schleife nehmen, gut möglich dass da der Zähler
> zurückgesetzt wird.

Stimmt zwar, ist aber egal, denn das passiert in wdt_reset ebenfalls. 
Der WDT soll zubeissen wenn der AVR die Schleife nicht mehr ausführt.
#2719491
Lesenswert?

Wenn du den Watchdog nicht haben willst, dann programmiere ihn nicht. 
Wirksam wird das am einfachsten durch Strom weg nach dieser Änderung. 
Aber wirklich weg, denn der Controller merkt sich das evtl. auch noch 
bei ein paar Zehntel Volt.

Dass der bei neueren Controllern durch einfachen Reset nicht deaktiviert 
wird, sondern nur durch Powerup, ist m.E. volle Absicht. Ansonsten 
entsteht ein kritisches Fenster zwischen WDT-Auslösung und 
Neuaktivierung, in dem ein Hänger endgültig ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren