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.