醒著,也要提醒你不要睡著~

上次的sleep mode,醒著就一定要到睡著,才能再次叫醒。可是,我們希望當我們有動作時,就不需要進入睡眠模式。也就醒著時,也要時時提醒不要再睡著。

這在上次的程式中,拿掉一行就行!

來吧,直接看上次的程式。我只拿sleepNow()這段~

void sleepNow(){         
 
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);   
    sleep_enable();                          
    attachInterrupt(0, wakeUpNow, LOW);     
    digitalWrite(ledPin, LOW);     
    sleep_mode();                 // 進入睡眠 
    sleep_disable();            // 離開睡眠時,關掉。


 //   detachInterrupt(0);         
 // 關閉中斷0 pin 2 ,如此在一般執行時,才不會被執行 
 //(原始code寫pin 3,應該是pin 2才是)


    delay(250);                        
    digitalWrite (interruptPin, LOW)   
}

拿掉的是第11行,原本 detachInterrup()用來讓在工作模式狀態,不被再次觸發喚醒中斷。

如果以我們的需求,是要用來看不動作時間有多久後要進入睡眠模式。那我們就需要靠中斷,有動作時就去更新間計數。讓系統持序續在工作狀態。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *