Hi, ich möchte gerne meinen mega64 resetten vom Programm aus (verwende CodeVision), aber es scheint nicht zu tun. Habe eine Funktion geschrieben, die ja identisch mit dem von CV ausgespuckten Init des WDT ist. Aber der Reset kommt nicht. void reset() { WDTCR = 0x18; WDTCR = 0x08; } Hatte den WDT im CodeGenerator zu Beginn ausgeschaltet. Habe auch probiert, direkt mit Assembler zu arbeiten; ebenfalls ohne Erfolg. void reset2() { //saving regs is not required, device is restarting! #asm("LDI R31,0x18"); #asm("OUT WDTCR,R31"); #asm("LDI R31,0x08"); #asm("OUT WDTCR,R31"); } Was hab ich denn vergessen? Danke, Christoph
Verwendest du vielleicht die Delay Funktion? Da wird glaube ich nämlich der Watchdog Timer unter anderem damit zurückgesetzt... Gibt es auch keinen Reset wenn du in eine Endlosschleife springst wo nichts anderes drinsteht?
aaaaahhhh... das wars gewesen :) Muß man mal drauf kommen, dass da noch ein wdr versteckt ist drinnen. Dankeschön...
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.