]> www.fi.muni.cz Git - tinyboard.git/blob - projects/step-up/main.c
main.c modified for ATtiny45/step-up
[tinyboard.git] / projects / step-up / main.c
1 #include <avr/io.h>
2 #include <util/delay.h>
3 #include <avr/sleep.h>
4 #include <avr/interrupt.h>
5 #include <avr/power.h>
6 #include <avr/wdt.h>
7
8 #include "lights.h"
9
10 static void hw_setup()
11 {
12         wdt_enable(WDTO_1S);
13
14         //init_battery();
15         init_pwm();
16         init_adc();
17
18         //init_tmr();
19         //init_buttons();
20
21         //init_pwmled();
22         //init_gpio();
23         //init_ambient();
24         //init_pattern();
25         //init_control();
26
27         set_sleep_mode(SLEEP_MODE_IDLE);
28 }
29
30 #if 0
31 static void hw_suspend()
32 {
33         susp_pwm();
34         susp_adc();
35         susp_tmr();
36         susp_gpio();
37         susp_buttons();
38
39         wdt_disable();
40 }
41
42 void power_down()
43 {
44         hw_suspend();
45
46         do {
47                 // G'night
48                 set_sleep_mode(SLEEP_MODE_PWR_DOWN);
49                 sleep_enable();
50                 sleep_bod_disable();
51                 sei();
52                 sleep_cpu();
53
54                 // G'morning
55                 cli();
56                 sleep_disable();
57
58                 // allow wakeup by long button-press only
59         } while (!buttons_wait_for_release());
60
61         // ok, so I will wake up
62         hw_setup();
63 }
64 #endif
65
66 int main(void)
67 {
68         init_log();
69
70         power_usi_disable(); // Once for lifetime
71         ACSR |= _BV(ACD);    // disable analog comparator
72
73         log_set_state(3);
74
75         hw_setup();
76         // power_down(); - not while still debugging
77
78         sei();
79 #if 1
80         while (1) {
81                 wdt_reset();
82                 sleep_mode();
83         }
84 #endif
85
86 #if 0
87         DDRB |= _BV(PB2);
88         while (1) {
89                 PORTB |=  _BV( PB2 );
90                 _delay_ms(200);
91                 PORTB &=~ _BV( PB2 );
92                 _delay_ms(200);
93         }
94 #endif
95 }