Pages: [1] 2   Go Down
Author Topic: Verwendung Watchdog  (Read 6835 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 68
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Forum,


wollte grundsätzliche Fragen, ob etwas bei der Verwendung eines Watchdogs schief gehene kann am Arduino, dh dass auch beim erneuten hochladen eines Sketches ohne Watchdogtimerfunktion, immer noch der alte Watchdog irgendwie im Controller gesetzt ist?

Die Funktion des Watchdogs kann ich ja auch ausporbieren, indem ich zB das Hauptprogramm mittels Tastendruck und delay so lange anhalte, dass die zulässige Watchdogtimerdauer überschritten worden ist.

Bitte um Info ob ich richtig liege.

danke

lg
Dieter


PS: würde den Watchdog nach dieser Anleitung implementieren. http://tushev.org/articles/electronics/48-arduino-and-watchdog-timer
Logged


Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 270
Posts: 21844
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

wollte grundsätzliche Fragen, ob etwas bei der Verwendung eines Watchdogs schief gehene kann am Arduino, dh dass auch beim erneuten hochladen eines Sketches ohne Watchdogtimerfunktion, immer noch der alte Watchdog irgendwie im Controller gesetzt ist?
Meist passiert es, daß wenn bei der Watchdogprogrammierung was schief läuft der Arduino blockiert ist. Der Watchdog greift ein noch bevor der Sketch startet.
Dann hilft nur noch mittels ISP oder gar HV-Programmierung den Sketch zu löschen bzw den ATmega zurückzusetzen.

Grüße Uwe
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 68
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


Dann hilft nur noch mittels ISP oder gar HV-Programmierung den Sketch zu löschen bzw den ATmega zurückzusetzen.

Grüße Uwe

hmm aber wenn ich einfach ein neues Sketch ohne den WTG Funkionen raufspiele, dann müsste der Arduino ja wieder funktioneren, oder??
Das raufspielen des Sketches mache ich mit der IDE Arduino 1.0
Logged


Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 270
Posts: 21844
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wenn durch eine Falschprogrammierung der Watchdog resettiert noch bevor der Bootloader arbeitet bekommst Du über den Bootloader keinen Upload mehr zustande.
Viele Grüße Uwe
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 68
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,


angenommen mir passiert dies.
Kann ich dann den Bootloader in der IDE unter Tools/BurnBootloader wieder draufspielen oder wie bringe ich dann meinen Arduino wieder zum leben?
Was ist der einfachste Weg....

lg

Dieter
Logged


Offline Offline
Jr. Member
**
Karma: 11
Posts: 58
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Füge beim Arduino Bootloader den Parameter DWATCHDOG_MODS hinzu, kompiliere ihn und Brenne ihn auf den Chip.
Wenn der Arduino dann durch den Watchdog resettet wird, dann wird der Bootloader übersprungen und der Sketch sofort gestartet. Wenn das Reset einen anderen Grund hat, wird der Watchdog deaktiviert, und der Bootloader wartet auf den neuen Sketch.
Logged

0
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3495
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Wenn Du den Watchdog nur per Software startest, dann reicht es den Arduino kurz stromlos zu machen. Danach geht das wieder. Problem ist allerdings, dass der Bootloader unter Umständen zu lange braucht und dann der Watchdog zuschlägt --> d.h. statt dem gewünschten Reset mit Neustart bleibt der Arduino dann in einer "Resetschleife" hängen.

Was hast Du mit dem Watchdog vor?
Logged

Check out my experiments http://blog.blinkenlight.net

Offline Offline
Jr. Member
**
Karma: 0
Posts: 68
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


Was hast Du mit dem Watchdog vor?

den Watchdog verwende ich nur, dass im Falle des Falles ( kann ja sein dass mal der Arduino sich in einer Schleife verhängt usw) der Arduino resettet wird. Das Sysetm soll oder menschlichen Einfluss am laufen gehalten werden. Es liegt dann letztendlich auch an einer etwas schwer zugänglichen Stelle ( Wetterstation )

Zurück zum Watchdog. Ich hätte eh nur einen Reset erst nach Ablauf von >10sec eingestellt. Hierzu dürfte es ja eigentlich nie zu Konflikten mit dem Bootloader kommen..... oder?

lg
dieter
Logged


Offline Offline
Sr. Member
****
Karma: 2
Posts: 260
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

eigentlich sollte es da keine Probleme geben, so lang brauch der Bootloader nie.

Sorry, aber ich werd dein Thema jetzt einfach mal für meine Zwecke missbrauchen..  smiley-mr-green
(Wird dir vielleicht auch helfen)


Ich habe ein ähnliches Projekt wie du. (Temperaturmessung am Pool)

Den internen Watchdog hab ich schon in meinen Sketch integriert. (Habs sogar nach dem Link von dir gemacht=

Das lief eigentlich gut wie ich dachte.., wenn mein Arduino beim Daten-an-den-Server-senden keine Antwort vom Server bekam, kam wie gewünscht der Reset.

Doch gleich im ersten Feldtest hat der Watchdog nach ca. 15 Stunden Laufzeit irgendwie nicht gegriffen und das Arduino konnte nur durch drücken des Reset-Buttons wieder zum laufen gebracht werden...

Deshalb: Kann man einen Attiny zum externen Watchdog-Timer machen? Anleitung?

Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 68
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


Deshalb: Kann man einen Attiny zum externen Watchdog-Timer machen? Anleitung?



Wieso einen externen controller als Watchdog missbrauchen wenn der Arduino eh einen internen eingebaut hat.
Da is bei dir sicher nur irgendwo ein Programmfehler im Sketch....
Zeig uns was du gemacht hast


Lg
Logged


0
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3495
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Warum? Deshalb:

http://www.eetimes.com/discussion/break-points/4024509/Li-l-Bow-Wow
http://www.ganssle.com/watchdogs.htm
« Last Edit: July 29, 2012, 11:40:56 am by Udo Klein » Logged

Check out my experiments http://blog.blinkenlight.net

Offline Offline
Jr. Member
**
Karma: 11
Posts: 58
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die Argumente in den Links sind einleuchtend aber ich glaube etwas übertrieben. Lt. Datenblatt vom Atmega328 besitzt der interne WD einen eigenen Oszillator, wg Unabhängigkeit.
Wenn ich mir ein Szenario ausmale wo die Gefahr besteht dass ein wild gewordenes Programm den Watchdog ausschaltet, dann bin ich nicht mehr weit davon entfernt eine Risikoanalyse durchzuführen und die Lebensdauer der Taster zu berechnen...
Ein externe WD darf dann nicht mehr auf den Reset Pin vertrauen, sondern soll gleich die Stromversorgung des Arduino trennen. Galvanisch getrennt natürlich.
Vielleicht liege ich falsch aber bis jetzt hat bei mir der interne WD immer super funktioniert. Immer wenn ich dem internen WD die Schuld geben wollte, war es doch nur ein Programmierfehler.
Bei wem von euch hat der interne WD schon einmal richtig versagt?

@Kduin:
Zeige uns doch bitte Deinen Code.
Logged

0
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3495
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bei Dir hat er schon versagt - und zwar durch Programmierfehler smiley-wink Genau das war ja der Punkt des Autors.
Logged

Check out my experiments http://blog.blinkenlight.net

Offline Offline
Jr. Member
**
Karma: 0
Posts: 68
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset



Zurück zum Watchdog. Ich hätte eh nur einen Reset erst nach Ablauf von >10sec eingestellt. Hierzu dürfte es ja eigentlich nie zu Konflikten mit dem Bootloader kommen..... oder?

lg
dieter



Hallo, also diese Frage hat sich irgendwie verlaufen deshalb hänge ich sie nochmals hoch,eventl kann mir sie jemand beantworten.

Lg
Logged


0
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3495
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Falls keine Signale auf der seriellen Schnittstelle anliegen würde ich das auch so sehen. Falls auf der seriellen Schnittstelle aber - warum auch immer - Signale anliegen, dann kann es Dir passieren, dass der Bootloader vor dem WD drankommt und danach gleich wieder ein Reset durch den WD ausgelöst wird. Wenn Du einen WD verbaust ist es eigentlich immer besser den Bootloader in die Tonne zu treten und einen ISR zum flashen zu nehmen.
Logged

Check out my experiments http://blog.blinkenlight.net

Pages: [1] 2   Go Up
Jump to: