-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME
More file actions
13 lines (12 loc) · 747 Bytes
/
Copy pathREADME
File metadata and controls
13 lines (12 loc) · 747 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
delayIdle
=============
A low-power delay for Arduino
Using the delayIdle() function most common AVR chips consume approx. 1/2 of the power
when compared to the original Arduino delay() function.
ATmega328p@8MHz@5V : delay() =13.5mA delayIdle() = 8mA
ATmega328p@8MHz@3.3V : delay() = 3.7mA delayIdle() = 1.4mA
ATmega328p@1MHz@3.3V : delay() = 1.2mA delayIdle() = 0.5mA
ATtiny85 @1MHz@5V : delay() = 3.2mA delayIdle() = 2.5mA
Putting the CPU to SLEEP_MODE_IDLE causes some inaccuracy in the time when the CPU returns from the delayIdle() function,
however in most cases the small inaccuracy is acceptable.
The inaccuracy depends mostly on TIMER0 overflow, which depends on CPU frequency : 1ms @ 16MHz, 2ms @ 8MHz, 16ms @ 1MHz