Die Sleep-Modi ermöglichen der Applikation die unbenutzten Module der MCU abzuschalten und darurch den Stromverbrauch zu senken. Der AVR Mikrocontroller enthält fünf verschiedene Sleep Modi. Um diese zu aktivieren muss das SE-Bit im MCUCR-Register mit einer logischen 1 beschrieben werden und ein SLEEP-Befehl ausgeführt werden. Die Bits SM2, SM1 und SM0 des MCUCR-Registers bestimmen, welcher Sleep Modus (Idle, ADC Noise Reduction, Power-down, Power-save oder Standby) durch den SLEEP-Befehl aktiviert wird (siehe nachfolgende Tabelle).
Wenn ein freigegebener Interrupt auftritt, während sich der Controller in einem Sleep-Modus befindet, so wacht der Controller wieder auf. Der Controller wird dann für vier Takte und die Start-up Zeit angehalten und führt anschließend die Interruptroutine aus. Nach dem Abschluss der Interruptroutine wird das Programm mit dem Befehl fortgesetzt, der dem SLEEP-Befehl folgt. Der Inhalt der Register und des SRAM werden durch das Aufwachen nicht verändert. Wenn während eines SLEEP-Modus ein Reset auftritt, wacht der Controller ebenfalls auf und führt das Programm ab der Adresse 0000h aus.
Der Erweiterte Standby-Modus, der in anderen AVR-Controllern möglich ist, wurde aus dem ATmega8 wieder entfernt. Ebenso teilen sich die Anschlüsse TOSC und XTAL dieselben physikalischen Pins.
Das Bild der Taktversorgung auf den
Seiten zuvor ist hilfreich für die Auswahl eines geeigneten Sleep Modus.