Gast
#2325661
Hallo, bei z.B. mega48 und mega328p (im Unterschied zu mega8) muß man zwingend am Anfang des Prog oder Bootloader neben wdt_disable() das WDRF zurücksetzen sonst gibt es endlose schnelle Resets. Hier z.B. an LED sichtbar ca. 15Hz resets, auch wenn der WDT z.B. auf höhere Periode 2.0s eingestellt wurde!? Fragen: * warum ist die endlos Reset-Periode sogar schneller als konfiguriert? welcher zusätzliche besondere Timer (da ja zumindest etwas startup code ausführen lassen muss) ist da am werkeln? * mit Bootloader: nach dem WDRF rücksetzen kann man das Bit nicht mehr per SW auf 1 setzen. (bleibt einfach 0.) Wie bringe ich das Bit am sinnvollsten ins C Programm (GCC)? so daß das Programm (ein einziges HEX-File) mit und ohne Bootloader arbeiten kann. Denn das Program informiert abnorme Resets auf User-Applikations-Ebene. (* warum wurde der Zwang des WDRF-Reset überhaupt eingeführt? wdt_disable() in AVR GCC tut ja nun auch nicht vollständig, was der Name suggeriert... und kann es nicht, sonst Info-Verlust ) PS: im Datenblatt (m48..328p, Seite 54) ist übrigens ein Fehler in dem Assembler watchdog disable code: "andi r16, (0xff & (0<<WDRF))" -> "andi r16, (0xff ^ (1<<WDRF))"