]> www.fi.muni.cz Git - bike-lights.git/blob - lights.c
ADC experiments
[bike-lights.git] / lights.c
1 #include <avr/io.h>
2 #include <avr/eeprom.h>
3 #include <util/delay.h>
4
5 uint16_t adcval EEMEM;
6
7 int main(void)
8 {
9         TCCR1C = _BV(COM1D0) | _BV(COM1D1) | _BV(PWM1D);
10         TCCR1A = _BV(PWM1A) | _BV(PWM1B);
11         TCCR1B = 0x80 | _BV(CS13) | _BV(CS12);
12         OCR1C = 0xFF;
13         OCR1D = 0x20;
14         TCNT1 = 3;
15         DDRB |= _BV( PB5 );
16         PORTB &= ~_BV( PB5 );
17
18         ADCSRA = _BV(ADEN) | _BV(ADATE) | _BV(ADPS1) | _BV(ADPS0);
19         ADMUX = _BV(REFS1) | _BV(MUX0);
20         ADCSRB = _BV(REFS2);
21         DIDR0 = _BV(ADC1D) | _BV(AREFD);
22
23         ADCSRA |= _BV(ADSC);
24         _delay_ms(1000);
25         eeprom_write_word(&adcval, ADCW);
26
27     DDRA |= _BV( PA0 );
28     while( 1 ) { 
29         PORTA |=  _BV( PA0 );
30         _delay_ms(2000);
31         PORTA &=~ _BV( PA0 );
32         _delay_ms(2000);
33     }
34 }