Forum: Mikrocontroller und Digitale Elektronik Watchdog resetet nicht


von Nachfolger (Gast)


Lesenswert?

Hallo Forum,
habe einige Projekte eines Kollegen übernehmen müssen da dieser einen 
schweren Unfall hatte und nicht so schnell wider arbeiten wird.
Unteradern eine Steuerung für eine Heizung. Bei dieser Steuerung ist 
aber noch richtig der Wurm drin.
Das heißt die Hardware ist auf dem ersten Blick OK, aber die Software 
schmiert dauernd ab.
Bei erster Durchsicht des Codes habe ich bemerkt das kein Watchdog 
aktiviert ist und dies auch sofort nachgeholt. Leider hat das nicht denn 
Effekt gebracht den ich erwartet hatte. Den das Programm bleibt trotzdem 
irgendwo hängen. Ich weiß zwar das der WD nicht die Lösung ist aber ich 
muss Zeitgewinnen. Sobald ich etwas Luft zum Atmen habe werde ich das 
Programm komplett überarbeiten.
In dieser Steuerung ist ein Atmega 644 verbaut.
Wie kann es angehen das kein Reset stattfindend wenn der WD nur einmal 
ganz am Anfang der Hauptprogrammschleife gelöscht wird ?
 Danke für Eure Hilfe
Nachfolger

: Verschoben durch Moderator
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nachfolger schrieb:
> Wie kann es angehen das kein Reset stattfindend

Meine Kristallkugel meint, dass du den Watchdog falsch aktiviert
hast.

Du kannst ja die harte Tour probieren und die WDTON-Fuse setzen. ;-)

von spess53 (Gast)


Lesenswert?

Hi

>Bei erster Durchsicht des Codes habe ich bemerkt das kein Watchdog
>aktiviert ist und dies auch sofort nachgeholt.

Wozu? Bring die Software zum störungsfreien Arbeiten. Dann kannst du den 
Watchdog einschalten.

MfG Spess

von Peter (Gast)


Lesenswert?

Der Watchdog ist ja ein Timer. Vielleicht reloadest Du den Counter zu 
schnell, so daß es gar nicht erst zum Auslösen des Resets kommt. 
Allerdings finde ich auch, dass dieser Patch "Quick and Dirty" ist.

Viele Grüße

von Nachfolger (Gast)


Lesenswert?

Mein Problem ist die Zeit!
Ich möchte mir mit dieser Aktion einfach ein wenig Luft verschaffen!
Und wie schon in meinem ersten Post ich lösche den Wd nur am Anfang der 
Hauptschleife !

Danke und schönes We

von Gerd E. (robberknight)


Lesenswert?

> Und wie schon in meinem ersten Post ich lösche den Wd nur am Anfang der
> Hauptschleife !

Vielleicht wird die Hauptschleife ja beim "Absturz" weiterhin dauernd 
durchlaufen, nur der Rest funktioniert nicht mehr richtig?

Oder Dein Vorgänger hat den Watchdog doch noch wo anders auch resettet.

Oder aber Du hast irgenwelche elektrischen Probleme (Brownout, 
Elektromagnetische Wellen, ESD,...) die den Controller so zum Absturz 
bringen, daß auch der Watchdog nicht mehr geht.

Schau Dir mal die Beschaltung des Reset und des Quarz ganz genau an, 
nicht nur im Schema, sondern auch im Layout und auf dem konkreten Board 
(Durchgangsprüfer durch die Bauteile und Leiterbahnen). Das sind 
beliebte Fehlerstellen. Es reicht schon eine kalte Lötstelle am 
Reset-Pullup und schon hast Du alle von Dir beschriebenen Symptome...

Wenn das nix hilft dann systematisch debuggen.

von Ben _. (burning_silicon)


Lesenswert?

Ich würde ebenfalls dringend dazu raten, lieber den Fehler in der 
Software zu suchen anstatt irgendwelche dreckigen Workarounds zu 
probieren.

Gerade bei einer Heizungssteuerung möchte ich als Kunde keine 
Bananenware haben, denn wenn mir die Rohre erstmal kaputtgefroren sind 
und die Anwälte gefühlte fünfzig Bäume Papier vollgeschrieben haben wer 
nun für den Schaden aufkommt wäre ich von dieser Firma bis in alle 
Ewigkeit geheilt!

von Wilhelm F. (Gast)


Lesenswert?

Ben _ schrieb:

> Ich würde ebenfalls dringend dazu raten, lieber den Fehler in der
> Software zu suchen anstatt irgendwelche dreckigen Workarounds zu
> probieren.

Richtig. Der Watchdog ist eben eine Lösung, nur für den Ausfall, nicht 
den Regelfall.

von Peter D. (peda)


Lesenswert?

Gerd E. schrieb:
> Oder aber Du hast irgenwelche elektrischen Probleme (Brownout,
> Elektromagnetische Wellen, ESD,...) die den Controller so zum Absturz
> bringen, daß auch der Watchdog nicht mehr geht.

Oftmals sind nur die Fuses falsch gesetzt.
BOD muß an sein!
Und natürlich die längste Reset-Zeit!
Und bei Quarz als CPU-Takt immer den Full-Swing Mode!

Wenn schon im Datenblatt steht, daß der Low-Power Mode störempfindlich 
ist, dann sollte man das auch ernst nehmen.
Der läuft wirklich nur bei super glatter VCC zufriedenstellend (Ripple 
<1mV).


Peter

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.