Forum: Compiler & IDEs ATMEGA8:Reset nach mehr als 2sek. mit wdt_enable() ?


von Rene S. (rs-main)


Lesenswert?

Hallo,
ich benötige etwas Hilfe. In einer Motorsteuerung verwende ich 
wdt_enable(7) um nach 2 sek. in einem Loop (Nachführung) einen Reset 
auszuführen (Sicherheitsabschaltung). Diese Zeit würde ich gerne auf 
etwa 4 sek. erhöhen. Wer kann helfen ?
Gruß, Rene

von Jörg G. (joergderxte)


Lesenswert?

Der Watchdog unterstützt nur Zeiten bis ~2s (> Datenblatt). Aber der 
Watchdog ist doch dazu gedacht, den AVR neuzustarten wenn das Programm 
nichts sinnvolles (mehr) macht. Wenn du doch schon in einer Schleife 
bist, kannst du doch:
- messen wie lange die schleife läuft, z.B. mit einem Timer, der ja 
wahrscheinlich sowieso läuft)
- zählen wieviel Durchläufe die Schleife macht (und nach xx Mio. 
abbrechen)
- um bei deiner ursprünglichen Idee zu bleiben (da ich gar keine Ahnung 
habe, wie dein Programm aussieht ;) ), einen Timer(+Interrupt +großen 
Vorteiler) für das (den, die?) Timeout hernehmen

hth, Jörg

von gast (Gast)


Lesenswert?

Hallo,

> Aber der Watchdog ist doch dazu gedacht...

Wenn man den Watchdog für seine Zwecke nutzen kann, warum nicht?
Jede im AVR verbaute, bezahlte und nicht genutzte Ressource ist totes 
Kapital.

MfG

von SF (Gast)


Lesenswert?

Du könntest auf den Pin-Kompatiblen und weitestgehend 
funktionskompatiblen moderneren ATmega88 wechseln. Der kostet ähnlich 
viel wie der Atmega8 und kann auch 4s und 8s Watchdog-Timeouts. Außerdem 
kann er noch Watchdog-Interrupts, mit denen sich eventuell eleganter die 
Sicherheitsabschaltung realisieren ließe.

von Rene S. (rs-main)


Lesenswert?

Hallo,
ich hab mir das Datenblatt des ATEMGA88 angeschaut. Das sollte der 
einachste Weg sein. Danke !
Gruß, Rene

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.