Ein kleines Beispiel, wie ein 1MHz getakteter AVR (ATmega8), aus dem Sleep-Modus geweckt werden kann mit Timer2 und ext. Interrupt (Tasten). Der 32khz Quarz (32,768kHz) taktet den Timer2 im Asynchronmodus und löst nach 1s einen Timer-Interrupt aus und weckt den AVR aus den Sleep-Modus. Das gleiche passiert, wenn eine Taste betätigt wird (externer Interrupt). LED grün: der µC arbeitet die LOOP-Schleife ab (erhöte Stromaufnahme) LED gelb: Timer2 Interrupt ist aktiv LED rot : ext. Interrupt ist aktiv LED rot blinkt: unkorrekter Interrupt Aufruf Programmablauf: - LED Initialisierung + Test - WDR Aktivierung - Neustart per WDR - Initialisierung TIMER - SLEEP - ext. Interrupt - Tasten - SLEEP - Loop-Schleife (100ms LED grün) Ich habe bewußt alle Vorgänge etwas abgebremst, damit man nachvollziehen kann, wann und wo etwas passiert. Strombedarf meines Exemplars bei 1MHz Takt: ohne Sleep: 4,3 mA IDLE: 2,3 mA Power-slave:0,02mA Würde der µC in der Loop-Schleife 100.000 Takte benötigen käme man auf einen durchschnittlichen Strombedarf von 0,4mA. Für Hinweise bin ich sehr dankbar. Bernhard
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.