Egy egyszerű, 3V-os áramkört építenék, amely elvégez egy feladatot, majd energiatakarékos módba lép. Az áramkörben jelenleg csak a proci van, belső oszcillátorról jár, a 8MHz-es órajel le van osztva 8-cal, innen az 1MHz, ami bőven elegendő a későbbi feladathoz. A BOD kikapcsolva.
Az alábbi programocska fut most a prociban. A cél, hogy a proci minél kevesebbet fogyasszon, miuát elvégezte a dolgát. A PRR regiszterben lehet kikapcsolni a különféle egységeket, ami elvileg drasztikus áramfelvétel-csökkenést eredményezne, de nem csökken az áramfelvétel, és powerdown módba kapcsolás után is kb. 1,8mA marad az áramfelvétel, holott uA nagyságrendűnek kéne lennie.
Kód: Egész kijelölése
$regfile = "m88pdef.dat"
$crystal = 1000000
wait 3
' itt mérek először áramfelvételt, ami kb. 4mA, majd folyamatosan csökken kb. 2,2mA-re
$asm
sbi PRR, PRTIM0
sbi PRR, PRTIM1
sbi PRR, PRTIM2
sbi PRR, PRTWI
sbi PRR, PRSPI
sbi PRR, PRUSART0
cbi ADCSRA, ADEN
sbi PRR, PRADC
sbi ACSR, ACD
$end asm
'itt kb. 230uA-nek kéne lennie az áramfelvételnek, de semmit sem változik
wait 3
'Powerdown módba kapcsolom a procit, néhány uA áramfelvételnek kéne lennie, marad kb. 1,8mA
$asm
SBI MCUCR, 6
SBI SMCR, SM1
CBI SMCR, SM0
CBI SMCR, SM2
SBI SMCR, SE
SLEEP
$End asm
End