48进入省电模式 后是不是只能用异步时钟 使TIM2 中断唤醒?我以前用的是掉电模式(试验成功);但是后来需要改成若无其他状态装置每5秒将从休眠模式自动唤醒处理一次来处理数据;用的是内部CLK(ASSR =0;),这样配置有问题吗 ?
TIM2程序配置如下
int Tim2_Interrupt_Count=0;
void TIM2_Configuration(void)
{
OCR2A = 25;
ASSR = 0; //同步模式
TIMSK2 |= (1 << OCIE2A); /* 中断屏蔽寄存器 比较中断A允许*/
TCCR2A = 0x02; //比较输出模式选择
TCCR2B = 0x00; /*定时器工作在CTC计数器模式*/
TCCR2B |= 0x04; /*设置定时器的分频值为64分频*/
}
ISR(TIMER2_COMPA_vect)
{
Tim2_Interrupt_Count++;
if(Tim2_Interrupt_Count>3124) //5S 3125
{
LED_ON;
LED3_ON;
if(Tim2_Interrupt_Count>6250) //点亮灯时间为3.2ms 3126
{
LED_OFF;
LED3_OFF;
Tim2_Interrupt_Count=0;
}
}
sleep_enable(); //进入睡眠模式
sei();
sleep_cpu();
}
Tim2_Interrupt_Count的值在0和1之间变化;感觉是像装置复位~ 但是没有用WTD和BOD。 |