저전력 설계는 "얼마나 적게 먹느냐" 가 아니라 "얼마나 오래 자느냐" 의 문제다.
활성 10mA 를 1ms, 슬립 2µA 를 999ms
평균 = (10mA × 1 + 0.002mA × 999) / 1000 ≈ 12µA
깨어 있는 시간이 0.1% 인데 평균의 대부분을 차지한다. 활성 시간을 줄이는 것이 가장 큰 지렛대다.
그래서 하는 일
빨리 끝내고 잔다 같은 일이면 클럭을 올려 짧게 하는 편이 유리할 수 있다
폴링을 없앤다 깨어 있는 이유를 없앤다 — 인터럽트로 깨운다
주변장치 클럭을 끈다 안 쓰는 블록은 게이팅한다
주기를 늘린다 1초에 한 번으로 충분한 측정을 100ms 마다 하지 않는다
측정하지 않으면 모른다
수 µA 와 수 mA 를 함께 보려면 동적 범위가 넓은 전류계가 필요하다. 개발 보드의 디버거나 LED 가 함께 먹는 전류를 빼고 재야 하며, 파형으로 보면 예상 못 한 깨어남이 드러난다 — 대개 여기서 문제가 발견된다.