|
本帖最后由 rjx 于 2016-9-24 09:43 编辑
搞了一个音响系统的音量控制,想旋转音量控制几秒后,使单片机进入休眠状态,以避免单片机的时钟对音响系统造成干扰。下面的程序可以进入休眠,但无法唤醒,旋转音量控制的编码器没有使用中断方式,是否必须使用中断才能唤醒单片机?不使用中断就不能唤醒单片机吗? 另问,我的这种方法来进入休眠合适吗?
下面的程序仿真时,一开始运行即进入休眠模式,无法唤醒,另有一个按键是接INT1的,但按了后也没有唤醒。请高手解惑。
if(VOLUME_1!=OLD_VOLUME_1)
{
MCUCR=0X00; //关闭休眠
VOLUME_CONTROL(0,96); //编码器音量控制
OUT_595_1 (VOLUME_L[VOLUME_1]); //继电器编码输出 (低8位)
delay_ms(2);
RCK1=0;
OUT_595_2 (VOLUME_H[VOLUME_1]); //继电器编码输出 (高4位)
delay_ms(2);
RCK2=0;
OLD_VOLUME_1=VOLUME_1;
}
else if(OLD_VOLUME_1=VOLUME_1)
{
delay_ms(5000); //5秒钟后休眠
MCUCR=0Xb0; //设置空闲休眠方式
#asm ("sleep"); //进入休眠
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|