Forum: Mikrocontroller und Digitale Elektronik Resetgrund herausfinden


von Christoph Wagner (Gast)


Angehängte Dateien:

Lesenswert?

Hi.

Ich bastele eben an einer 10-in-1 IR-Fernbedieung. Das Teil
funktioniert bis jetzt Prima, nur mit den Sleepmodes hab ich noch meine
Probleme.

Im Datenblatt des ATM16 steht, dass bei einem Reset alle I/O-Register
gelöscht werden (A propos : Die Register r0-r31 auch ?), und im
Register MCUCSR gleichzeitig ein Bit pro Resetgrund gesetzt wird.
Jetzt hab ich folgendes Problem :

Theoretisch müsste beim Anschalten das PORF (Power-On-Reset-Flag)
gesetzt sein. Wenn ja, soll das Gerät initialisiert werden. Nur :
Anscheinend wird nie der Code dafür ausgeführt (PORF anscheinend nie
gesetzt). Woran kann dies liegen ?

Um Strom zu sparen, wenn nicht gesendet wird, schalte ich den Chip in
den Power-down modus, und wecke ihn immer mit dem Watchdog auf. Wie
kann ich diese Situation Unterscheiden ? WDRF ?
Nach einer bestimmten Zeit soll sich die Fernbedienung komplett
abschalten, und soll dann nur vom INT2 (rising edge) aufgeweckt werden.
Wie kann ich die Aufweckquelle zwischen INT2 und Watchdog sowie Power-On
Unterscheiden ? (Beide starten bei RESET:)

In den Fuses hab ich die Aufweckzeit auf 4K-Zyklen eingestellt ("fast
rising power"). Was hat dies zur Auswirkung, außer dass es mit 4K 16
mal schneller als mit 64K geht ? (3V Batteriebetrieben)

Vielen Dank im Vorraus

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
Noch kein Account? Hier anmelden.