ATmega48 sleep
Fuzesi Arnold
arno at externet.hu
Tue Dec 21 03:43:59 CET 2004
Ja, atmega8 eseten mukodik ugyan ez a program.
Annyit csinaltam, hogy az INT0, SLEEP kornyeki regisztereket atneveztem,
modositottam amire kell.
Arnold
----- Original Message -----
From: "Fuzesi Arnold" <arno at externet.hu>
To: <elektro at tesla.hu>; <retro at lists.tmp.hu>; <avr-hun at x-dsl.hu>
Sent: Tuesday, December 21, 2004 3:41 AM
Subject: ATmega48 sleep
> Sziasztok!
>
> Van valakinek tippje, miert mukodik ez:
>
> ....
> else if(!remote_type){ //ha vezetékes
> __watchdog_reset();
> WDTCSR=b00011000;
> WDTCSR=b00000000; //WDT off
> LED=0;
> //WAKE-UP
> while(IR_IN); //varakozunk egy 0 szintre
> WDTCSR=b00011000;
> WDTCSR=b00001110; //1s WDT period
> LED=1;
> goto INIT;
> }
>
> Ez meg nem:
>
> else if(!remote_type){ //ha vezetékes
> __watchdog_reset();
> WDTCSR=b00011000;
> WDTCSR=b00000000; //WDT off
> EICRA=b00000000; //INT0 low level (required for wake-up from power
down
> mode)
> EIFR=b00000001; //INT0 flag clear
> EIMSK=b00000001; //INT0 enable
> LED=0;
> __enable_interrupt();
> SMCR=b00000101; //sleep enable,power down mode
> __sleep(); //INT0 ebreszti
> asm("nop");
> //WAKE-UP
> __disable_interrupt();
> WDTCSR=b00011000;
> WDTCSR=b00001110; //1s period
> LED=1;
> goto INIT;
> }
>
> WDT ki van kapcsolva a fuse biteknel.
>
> Ugy csinal, mintha sleep-bol nem lepne tovabb. Illetve 104uA-t fogyaszt.
> Neha mikor rajon akkor csak 2uA-t. (ez lenne a normalis, minden ki van
> kapcsolva, boden, wdt, power down modban van)
>
> INT0 mukodik rendesen futo program eseten.
> Egy egyszeru rutin amelyik siman lefut, es visszater.
> Nem ertem... Valakinek otlete?
>
> Kösz,
> Arnold
>
More information about the Elektro
mailing list