PIC12F629的睡眠喚醒方法
以下為使用12F629進行睡眠和喚醒的例子:
喚醒方式為IO口跳變中斷喚醒。
GIE=0; //關總中斷,這樣如果喚醒后會繼續執行,不會跳入中斷
/*SET IO CODE*/ //不用的IO做輸出,減小SLEEP電流
?? =GPIO; //這一句的作用是讀GPIO,如果不讀一次可能導致自動喚醒
//可以把GPIO賦給任何過期的變量,只要讀它就可以,因為讀一次會使數據鎖存,IO跳變中斷是用讀入的值和上一次鎖存的值進行比較。
GPIE=1; //使能引腳電平變化中斷
IOCB=0X??; //使能引腳電平變化中斷
GPIF=0; //確保中斷標志為0
SLEEP(); //睡眠..zz..zzz..zzzz
NOP();
NOP();
asm("GOTO 0000H"); //等效于復位,PC-->0X0000