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=be940a689a81f0405adac0c1dcba822fd896d5f6;hb=HEAD;hpb=280768d8d70943db6504131d49d2a916f6ec3acd diff --git a/projects/step-up/main.c b/projects/step-up/main.c index be940a6..25d80df 100644 --- a/projects/step-up/main.c +++ b/projects/step-up/main.c @@ -9,34 +9,31 @@ static void hw_setup() { - wdt_enable(WDTO_1S); + power_all_disable(); - //init_battery(); + init_battery(); init_pwm(); init_adc(); + init_wdt(); - //init_tmr(); - //init_buttons(); + init_buttons(); - //init_pwmled(); - //init_gpio(); - //init_ambient(); - //init_pattern(); - //init_control(); + init_pwmled(); + init_pattern(); + init_control(); set_sleep_mode(SLEEP_MODE_IDLE); } -#if 0 static void hw_suspend() { susp_pwm(); susp_adc(); - susp_tmr(); - susp_gpio(); + susp_wdt(); + susp_buttons(); - wdt_disable(); + power_all_disable(); } void power_down() @@ -61,25 +58,33 @@ void power_down() // ok, so I will wake up hw_setup(); } -#endif int main(void) { init_log(); - power_usi_disable(); // Once for lifetime - ACSR |= _BV(ACD); // disable analog comparator - log_set_state(3); hw_setup(); - // power_down(); - not while still debugging + power_down(); 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