Jak poprawnie wybudzić ATmega8 z trybu Power Down za pomocą przerwań?
Tryb Power Down w ATmega8
From: Michal Waskiewicz <mwaskiewicz_at_nospam_[nospam].op.pl>
Subject: Tryb Power Down w ATmega8
Date: Tue, 29 Mar 2005 19:07:28 +0200
Witam wszystkich!
Od pewnego czasu męczę się z problemem wymienionym w temacie. Procek
wchodzi w tryb uśpienia (pobór prądu spada do kilku uA) jednak nie
jestem w stanie wybudzić go z powrotem za pomocą przerwań.
Procek bez problemu obsługuje przerwania gdy wprowadzę go w tryb IDLE,
jednak z POWER DOWN nie może się wybudzić. Z archiwum grupy i z noty
katalogowej wynika moim zdaniem, że istnieje możliwość wybudzenia za
pomocą przerwań Int0 i Int1. Co może być nie tak?
P.S. Oto kod programu:
(...) //include'y i define'y
void wait(int delay){
int i;
for(;delay>0;delay--)
for(i=0;i<50;i++)
asm("nop");
}
void dioda(void){
sbi(PORT_DIODA,PIN_DIODA);
wait(1000);
cbi(PORT_DIODA,PIN_DIODA);
}
SIGNAL(SIG_INTERRUPT0){ }
SIGNAL(SIG_INTERRUPT1){ }
int main(void){
MCUCR=0x0A;
GICR=0xC0;
DDRB=0xFF;
DDRD=0xF3;
PORTD=0x0C;
while(1){
dioda();
sei();
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_mode();
dioda();
wait(1000);
dioda();
}
return(0);
}
--
Pozdrawiam,
Michał Waśkiewicz
From: Jurek Szczesiul <jerzy.szczesiul_at_nospam_wycin.ep.com.pl>
Subject: Re: Tryb Power Down w ATmega8
Date: Tue, 29 Mar 2005 20:45:15 +0200
Tue, 29 Mar 2005 19:07:28 +0200, na pl.misc.elektronika, Michal Waskiewicz
napisał(a):
MCUCR=0x0A;
To zdaje się wyzwalanie zboczem, a z power down budzą tylko wyzwalane
poziomem.
--
Pozdrowienia
Jurek Szczesiul
From: Michal Waskiewicz <mwaskiewicz_at_nospam_[nospam].op.pl>
Subject: Re: Tryb Power Down w ATmega8
Date: Tue, 29 Mar 2005 22:12:03 +0200
Jurek Szczesiul wrote:
To zdaje się wyzwalanie zboczem, a z power down budzą tylko wyzwalane
poziomem.
Bardzo dziękuję, rzeczywiście w tym był problem, a wydawało mi się, że
sprawdzałem wszystkie możliwe sposoby ustawienia tych bitów :-)
--
Pozdrawiam
Michał Waśkiewicz