78777866d1f88354bccdc2c2e68f21a1cf2132a2
[heater.git] / firmware / main.c
1 #include <avr/io.h>
2 #include <util/delay.h>
3
4 #include "logging.h"
5
6 int main()
7 {
8         log_init();
9
10         DDRB |= _BV(PB2) | _BV(PB4);
11         TCCR1 = _BV(CS10); // clk/1 = 1 MHz
12         // TCCR1 = _BV(CS11) | _BV(CS13); // clk/512 = 2 kHz
13         GTCCR = _BV(COM1B1) | _BV(PWM1B);
14         OCR1C = 255;
15         OCR1B = 9;
16
17         ADCSRA = _BV(ADEN) | _BV(ADPS1) | _BV(ADPS0); // clk/8 = 125 kHz
18         ADMUX = _BV(REFS1) | _BV(MUX1) | _BV(MUX0); // 1.1V ref., PB3 single-ended
19         DIDR0 = _BV(ADC3D);
20         ADCSRA |= _BV(ADSC);
21         while (!(ADCSRA & _BV(ADIF)))
22                 ;
23         log_word(ADCW);
24         ADCSRA |= _BV(ADSC);
25         while (!(ADCSRA & _BV(ADIF)))
26                 ;
27         log_word(ADCW);
28         log_flush();
29
30         while(1) {
31                 PORTB |= _BV(PB2);
32                 _delay_ms(500);
33                 PORTB &= ~_BV(PB2);
34                 _delay_ms(1000);
35         }
36 }