سلام دوست عزیز
می تونی برای کاهش توان مصرفی از برنامه زیر استفاده کنی
void PowerDown_Set(void)
{
MCUCR&=0;
MCUCR|=(1<<SM1); //Enable Power-Down Mode
GICR|=0xC0; //Enable External Interrupt
MCUCR|=(1<<SE);
#asm("sleep"); //Enable Sleep
}//End
هنگام استفاده از وقفه cpu بیدار می شود ،و زمانی که cpu بالا آمد، برنامه ای که در داخل تابع main وجود دارد اجرا می شود
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
PowerDown_Exit();
sleep_disable();
delay_ms(100); //delay when the power turned on
lcd_clear();
lcd_gotoxy(0,1);
lcd_putsf("WakeUp..........");
delay_ms(1000);
lcd_clear();
}
void main()
}
{
در ضمن می تونی این قسمت رو هم چک کنی .
...when sleep:
//lcd port
PORTA=0xF8; //bit E=1, RS=1, RD=1
DDRA=0xFF;
...when wakeup:
//lcd port
PORTA=0x00;
DDRA=0xFF;
این برنامه رو امتحان کن من از این برنامه جواب گرفتم .
انشاا که موفق بشی