ceekay
20.09.2010, 19:22
Hallo,
Ich hatte soeben folgendes Problem:
Nach dem Auflöten eines neuen Mega168 im TQFP Package, habe ich zu Testzwecken ein einfaches Programm welches nur nen Ausgang mit ner LED ansteuert geflasht.
Es tat sich nichts. Beim überprüfen der Fuses fiel mir auf das je nachdem welchen Wert man bei "Startup Time" nach Reset einstellt die LED blinkt. Mit ziemlich genau passendem Takt des eingestellten Delays.
Scheinbar ein Dauert Reset.
Auch WDTON und Brownout Detection disable half nix. Nachdem ich alle Pins nachgelötet und VCC sowie Reset mit nem Scope überprüft hatte blieb fast nur noch der Watchdog.
Und siehe da, einmaliges Löschen des
MCUSR &= ~(1<<WDRF);Flags und es lief.
Anschließend konnte ich das Löschen wieder aus dem Programm werfen und es funktioniert weiterhin.
Hatte aber bis dahin den Watchdog nie verwendet, bzw aktiviert.
Wie is das möglich? Hat mich einiges an Nerven gekostet...
Ich hatte soeben folgendes Problem:
Nach dem Auflöten eines neuen Mega168 im TQFP Package, habe ich zu Testzwecken ein einfaches Programm welches nur nen Ausgang mit ner LED ansteuert geflasht.
Es tat sich nichts. Beim überprüfen der Fuses fiel mir auf das je nachdem welchen Wert man bei "Startup Time" nach Reset einstellt die LED blinkt. Mit ziemlich genau passendem Takt des eingestellten Delays.
Scheinbar ein Dauert Reset.
Auch WDTON und Brownout Detection disable half nix. Nachdem ich alle Pins nachgelötet und VCC sowie Reset mit nem Scope überprüft hatte blieb fast nur noch der Watchdog.
Und siehe da, einmaliges Löschen des
MCUSR &= ~(1<<WDRF);Flags und es lief.
Anschließend konnte ich das Löschen wieder aus dem Programm werfen und es funktioniert weiterhin.
Hatte aber bis dahin den Watchdog nie verwendet, bzw aktiviert.
Wie is das möglich? Hat mich einiges an Nerven gekostet...