Hallo an die AVR-Spezialisten,
Im Arduino-Framework gibt's ja eine leere "weak" Funktion yield(), die
u.A. im delay() aufgerufen wird, wenn Zeit vertrödelt werden soll.
Spricht was dagegen, da einfach
1 | void yield() {
|
2 | set_sleep_mode(SLEEP_MODE_IDLE);
|
3 | sleep_mode();
|
4 | }
|
in's Hauptprogramm mit aufzunehmen?
Funktioniert bei mir zumindest in kleinen Test-Programmen.
Spätestens der Timer für die "millis()" sollte den AVR ja rechtzeitig
wieder wecken.
Im eigenen Code hat man oft die Möglichkeit, delay zu vermeiden, in
extern dazugeholten Libraries eher unpraktisch. Wär' eine elegante
Option, da zumindest ein wenig Stromsparen nachzurüsten.