Forum: Mikrocontroller und Digitale Elektronik Probleme mit dem Watchdog beim Tiny24


von Marin H. (Gast)


Lesenswert?

Hallo zusammen,

ich habe ein Problem mit dem Watchdog meines ATTiny24.
Folgender Code:
1
#include... // kürze ich gerade mal
2
3
int main ( void ) {
4
  
5
  //uint8_t mcusr_mirror = MCUSR;
6
  wdt_enable(WDTO_120MS);
7
  wdt_reset();
8
  led_an();
9
  while(1);
10
}

diese Zeilen sollten doch den Watchdog aktivieren und nach 120ms einen 
reset auslösen.
Nachprüfen/-messen kann ich das an der LED.

Nun so wie oben klappts, dokumentiere ich allerdings die erste Zeile 
nicht aus dann ist die LED zyklisch 70ms an und 70ms aus?!?! und genau 
hier verstehe ichs nicht?!

Ich habe festgestellt, dass die LED nurnoch wenige µs aus ist wenn ich 
die Einschwingzeit des Oszillators auf 0ms "fuse" und dass sie 4,6ms aus 
ist bei 4ms Einschwingzeit. 70ms LED-aus-Zeit kommen daher irgendwie von 
den eingestellten 64ms Einschwingzeit.
Nur die 70ms an sind mir ein Rätsel, ich kann auch
wdt_enable(WDTO_60MS);
oder
wdt_enable(WDTO_30MS);
einstellen und es ändert sich nix an den 70ms LED-an-Zeit solange die 
erste Zeile nicht ausdokumentiert ist?!

Warum? was ist da falsch? ich will doch nur die Reset-Ursache prüfen!?

Vielen Dank schonmal
lg Martin

von Marin H. (Gast)


Lesenswert?

Nachtrag: Stelle ich den Watchdog-timout auf 2 Sekunden klappts auch... 
nur ist mir das leider zu lang!
allerdings bin ich jetzt endgültig verwirrt. Warum tut er das so?!

von Martin H. (Gast)


Lesenswert?

Es hat keiner eine Idee? Schade...

von Sauger (Gast)


Lesenswert?

Marin H. schrieb:
> Folgender Code:
> #include... // kürze ich gerade mal

keine gute Idee, unsere Kristallkugeln sind ausgelastet :-)

> Warum? was ist da falsch? ich will doch nur die Reset-Ursache prüfen!?
das Register MCUSR ist beim Eintritt in die main() nicht mehr gültig.

mach dich mal über:
void _attribute_ ((naked, section(".init0"))) KommeVorMain (void)
schlau

MfG

von Peter D. (peda)


Lesenswert?

Marin H. schrieb:
> und es ändert sich nix an den 70ms LED-an-Zeit solange die
> erste Zeile nicht ausdokumentiert ist?!

Also diese Zeile:
1
#include... // kürze ich gerade mal

Ich werd aus Deinem Post jedenfalls nicht schlau.

Je genauer die Angaben, umso leichter kriegt man Hilfe.
Bezieht man sich auf Zeilennnummern, muß man den compilierbaren 
Quelltext als Anhang senden.
Wie soll sonst jemand die Zeilen zuordnen?

Hat man 2 unterschiedliche Versionen, dann entweder beide Files oder:
1
#if 0
2
// V1
3
#else
4
// V2
5
#endif

Compilierbare Anhänge sind (fast) immer besser als Schnipselchen.


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.