Probleme mit dem Watchdog beim Tiny24

Gast #2108073
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
Gast #2108632
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
#2108639
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

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