Hallo, ich habe folgendes probelm. ich habe ein programm geschrieben das einfach nur von 0 bis 999 zählt und dann die zahl durch ein display ausgibt. Ich habe jetzt das problem das nach ca. 5sec. der ATmega sich resetet. Kann das an dem watchdog timer hängen (den ich eigentlich abgeschaltet habe) WDT_off: push r16 wdr in r16,WDTCR ori r16,0b00011000 out WDTCR,r16 ldi r16,0b00000000 out WDTCR,r16 pop r16 ret oder gibt es noch andere funktionen die einen Reset auslösen?
Hi
>oder gibt es noch andere funktionen die einen Reset auslösen?
Ja. Z.B. dein Programm. Wenn du den WD nicht eingeschaltet hast
(Software/Fuses), dann läuft er auch nicht.
MfG Spess
Bei manchen Typen muss zuerst WDRF in MCUSR gelöscht werden, sonst sind Änderungsversuche ohne Wirkung. Auch eine gesetzte WDTON-Fuse hat denselben Effekt.
WDT_off: ;** 1. Phase wdr ; reset WDT ldi r16,0x00 out MCUCSR,r16 ;** 2. Phase in r16,WDTCR ; Write logical one to WDCE and WDE ori r16,0b00011000 in r17,SREG ; save I Flag cli ; we have only 5 cycles to reset WDE out WDTCR,r16 ;** 3. Phase ldi r16,0x00 ; Turn off WDT out WDTCR,r16 out SREG,r17 ; restore I Flag ret probem ist immernoch vorhanden spannungsabfall also brown-out kann es auch nicht sein der wurde auch deaktiviert
Man kann auch MCUSR abfragen um zu erkennen, welche Sorte Reset es denn war. Ansonsten gibt's noch einige Gründe, warum ein Controller einen Reset ausführt.
Nochmal zur Erinnerung (spess53 sagte es schon): Auch ein Fehler im Programm kann dazu führen (Sprung ins Nirgendwo, durchlaufen des leeren Flashs und ankommen bei Adresse 0; Interrupt ohne ISR...). Gruß Dietrich
> Auch ein Fehler im Programm kann dazu führen (Sprung ins Nirgendwo, > durchlaufen des leeren Flashs und ankommen bei Adresse 0; Interrupt ohne > ISR...). Da das Programm nicht so lang ist muss ich das glaube punkt für punkt noch mal durchgehen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.