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