一个关于12F629进行睡眠和唤醒的例子
醒方式为IO口跳变中断唤醒。 GIE=0; //关总中断,这样如果唤醒后会继续执行,不会跳入中断/*SET IOCODE*/ //不用的IO做输出,减小SLEEP电流
?? =GPIO; //这一句的作用是读GPIO,如果不读一次可能导致自动唤醒
//可以把GPIO赋给任何过期的变量,只要读它就可以,因为读一次会使数据锁存,IO跳变中断是用读入的值和上一次锁存的值进行比较。
GPIE=1; //使能引脚电平变化中断
IOCB=0X??; //使能引脚电平变化中断
GPIF=0; //确保中断标志为0
SLEEP(); //睡眠..zz..zzz..zzzz
NOP();
NOP();
asm("GOTO 0000H"); //等效于复位,PC-->0X0000
页:
[1]