Tiny13 으로 긴급히... 바때리로 돌아가는 쪼만한 유닛을 만들게 되었습니다.
on/off 버튼 토글하면, Sleep and Wakeup 이 되야 합니다.
-_-; 큰 삽질은 안했지만, 아래 같이 하면 되네요...
on/off button 은 B1 port 의 Port Change Interrupt 를 사용합니다.
아래 Sleep 관련 Macro 를 사용하려면, AVR GCC (WinAVR) 에서 제공하는...
#include <avr\sleep.h>
를 쓰면 됩니다.
Sleep 들어갔더니 20uA Current 소모 하네요... 좋아요~
/* ----------------------------------------------------- */
sleep_enable();
MCUCR = (MCUCR & 0xFC) | 0x00; // level intr make external intr
GIMSK = 0x20; // enable Port Change intr
PCMSK = 0x02; // Pin change mask to PB1 (on/off button )
sei(); // global enable
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // select sleep mode
sleep_mode(); // Call the SLEEP instruction.
cli(); // global intr disable
/* ----------------------------------------------------- */