#include <avr/io.h>
#include <util/delay.h>
static inline void initADC0(void) {
ADMUX |= (1 << REFS0);
ADCSRA |= (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
ADCSRA |= (1 << ADEN);
ADCSRA |= (1 << ADIE);
}
ISR (ADC_vect) {
//Serial.println(ADC);
float adcValue = ADC;
float voltageOutput = (5 * adcValue) / 1023;
//Serial.println(adcValue);
//Serial.println(voltageOutput);
if (voltageOutput < 2.5) {
PORTB |= (1 << PB0);
}
else if (voltageOutput >= 2.5) {
PORTB &= ~(1 << PB0);
}
ADCSRA |= (1 << ADSC);
}
int main (void) {
Serial.begin(9600);
initADC0();
sei();
DDRB = 0xff;
ADCSRA |= (1 << ADSC);
while (1) {
PORTB ^= (1 << PB1);
//Serial.println(bitRead(PORTB,PB1));
_delay_ms(1000);
}
return (0);
}