Quiero poner un Attiny13 a dormir. En resumen, el capítulo 7 de la hoja de datos dice que debe hacer lo siguiente:
establecer el modo de suspensión
habilitación de reposo (establecer bit SE)
emitir comando SLEEP
Generalmente esto se hace con la ayuda de la biblioteca 'sleep.h' y luego se traduce a
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sleep_cpu();
Si no quiero usar la biblioteca sleep.h, el modo de suspensión y la habilitación de suspensión son fáciles de configurar a través de 3 bits (SM [1: 0] y SE), pero ¿cómo emito el comando SLEEP?
Si veo cómo la biblioteca sleep.h realmente lo hace, se define como __asm__ __volatile__ ( "sleep" "\n\t" :: );
Eso parece extraño, ¿realmente tengo que emitir la palabra "dormir" en algún lugar de un programa para tener la capacidad de dormir? ¿No puedo establecer un registro en alguna parte?
La biblioteca Sleep.h parece una gran cantidad de sobrecarga si solo quiero poner un chip en suspensión