X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?p=tinyboard.git;a=blobdiff_plain;f=projects%2Fstep-up%2Fmain.c;h=25d80df070bb4bf7269e89c6ee50792fdb245612;hp=90bea63dc60d300c3f3e6723d6f0718979167cbb;hb=HEAD;hpb=edebb613b2f867d4f8473747744f329cb30e38fe diff --git a/projects/step-up/main.c b/projects/step-up/main.c index 90bea63..25d80df 100644 --- a/projects/step-up/main.c +++ b/projects/step-up/main.c @@ -9,17 +9,16 @@ static void hw_setup() { - wdt_enable(WDTO_1S); + power_all_disable(); init_battery(); init_pwm(); init_adc(); - init_tmr(); + init_wdt(); + init_buttons(); init_pwmled(); - init_gpio(); - init_ambient(); init_pattern(); init_control(); @@ -30,11 +29,11 @@ static void hw_suspend() { susp_pwm(); susp_adc(); - susp_tmr(); - susp_gpio(); + susp_wdt(); + susp_buttons(); - wdt_disable(); + power_all_disable(); } void power_down() @@ -64,9 +63,6 @@ int main(void) { init_log(); - power_usi_disable(); // Once for lifetime - ACSRA |= _BV(ACD); // disable analog comparator - log_set_state(3); hw_setup(); @@ -75,8 +71,20 @@ int main(void) sei(); #if 1 while (1) { - wdt_reset(); - sleep_mode(); + cli(); + if (pwm_enabled) { + set_sleep_mode(SLEEP_MODE_IDLE); + } else if (adc_enabled) { + set_sleep_mode(SLEEP_MODE_ADC); + } else { + set_sleep_mode(SLEEP_MODE_PWR_DOWN); + } + + sleep_enable(); + // keep BOD active, no sleep_bod_disable(); + sei(); + sleep_cpu(); + sleep_disable(); } #endif