九齐低功耗一一睡眠模式:
1.睡眠模式:
通过执行SLEEP指令或写入 01b至寄存器OPMD[1:0]位,进入睡眠模式。
//1.#define SLEEP() __asm__("sleep")
SLEEP();
在进入睡眠模式后,寄存器/PD(STATUS[3])位将清除为 0,寄存器/TO(STATUS[4])位将设置为 1 且清除WDT并保持运作。进入睡眠模式前,逻辑设计中的部分硬件功能需要自己配置关闭。
在睡眠模式下,所有的I/O引脚都保持它们在运行模式时的状态。
2.唤醒:
(a)看门狗超时中断 (b)PA/PB输入状态改变中断 ©INT0/1 外部中断。
(a)看门狗超时中断:
配置中断寄存器(INTE)开启,有独立振荡器被WDT所使用,由上溢的时基由配置字节决定。
未开中断却退出了睡眠模式可能是未关闭WDT,WDT上溢将复位芯片。
可以通过WDTEN位(寄存器PCON[7])来开启/关闭。此外,WDT上溢后可由配置字节决定的复位NY8B062E或发出的中断请求。
(b)PA/PB输入状态改变中断
设置输入状态后,电平跳变产生的上下沿触发中断。
记得清除中断相关的标志位。
if(INTFbits.PABIF)
{
INTFbits.PABIF = 0; // Clear PABIF(PortB input change interrupt flag bit)
}