avr: clockticks missing in long_options
[avr-sim.git] / test / adc_test.c
blob0840d17bf282a81099de0bc63dc1dee5e9581d61
1 #include <avr/io.h>
2 #include <avr/interrupt.h>
3 #include <stdio.h>
4 #include "adio.h"
6 ISR(SIG_ADC) {
7 static volatile uint16_t last = 0;
8 if( (ADCSRA & _BV(ADSC)) != 0 ) {
9 last = 1;
12 last = ADC;
15 int main(void) {
16 init_adc();
18 int8_t i;
19 uint16_t sum = 0;
20 for(i = 0; i < 5; ++i)
21 sum += analogRead(i);
23 if( sum == 0 )
24 PORTB |= PB1;
26 ADMUX = (ADMUX & ~0x7) | 2;
27 ADCSRA |= (_BV(ADFR) | _BV(ADIE));
28 sei(); // enable interrupts
29 ADCSRA |= _BV(ADSC);
31 return 0;
34 void io_init() {
35 DDRB = 0xB9; // spi_clk, spi_in, spi_out, NC, TX, RX, clock in, clock
36 PORTB = 0x02;
38 DDRC = 0xFF; // Address
39 PORTC = 0x00;
41 DDRD = 0xFA; // NC, NC, NC, NC, NC, CAN_INT, MIDI TX & RX
42 PORTD = 0x00;