Hallo zusammen, Ich möchte beim ATMEGA 324 den watchdog wie bei jedem Projekt aktivieren und regelmäßig in der while-Schleife (main) resetten. Im Gegensatz zu allen ATMegas mit denen ich bisher gearbeitet habe, funktioniert das hier nicht. Alle Ausgänge pulsieren und die Elektronik lässt sich nicht mehr aufstarten. Deaktivere ich die WDTON fuse geht es wieder. Habt Ihr eine Idee woran das liegt?
Die Zeit falsch eingestellt? Dann beißt der Hund zu bevor er resettet wurde.
Jetzt gehts! Ich habe 2sec eingestellt aber offensichtlich nicht früg genug. Ich habe es in der main nur 3 Zeilen höher gestellt und schon gings! Jetzt habe ich nur das Problem dass ich in einer bestimnten Sequenz ABSCHALTEN möchte aber die library funktioniert nicht! disable_wdt() hat keine Auswirkung ...??
Rate mal wieso die fuse ALWAYS ON heißt?!? Um den ersten Kläffunterdrücker so früh wie möglich auszuführen kannste sowas ganz oben in die main.c schreiben:
1 | void wdt_init(void) __attribute__((naked)) __attribute__((section(".init1"))); |
2 | |
3 | void wdt_init(void) |
4 | {
|
5 | wdt_reset() |
6 | |
7 | return; |
8 | }
|
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.