#define ADC0 (0 << MUX3) | (0 << MUX2) | (0 << MUX1) | (0 << MUX0)
#define ADC1 (0 << MUX3) | (0 << MUX2) | (0 << MUX1) | (1 << MUX0)
#define ADC2 (0 << MUX3) | (0 << MUX2) | (1 << MUX1) | (0 << MUX0)
#define ADC3 (0 << MUX3) | (0 << MUX2) | (1 << MUX1) | (1 << MUX0)
#define ADC4 (0 << MUX3) | (1 << MUX2) | (0 << MUX1) | (0 << MUX0)
#define ADC5 (0 << MUX3) | (1 << MUX2) | (0 << MUX1) | (1 << MUX0)
int main(void){
Serial.begin(9600);
ADC_INIT();
TIMER1_INIT();
while(1){
if(TCNT1 > 65000){
TCNT1 = 0;
}
Serial.println(TCNT1);
};
}
void ADC_INIT(){
ADMUX = (0 << REFS1) | (1 << REFS0) | ADC0; //INTERNAL REF
ADCSRA = (1 << ADEN) | (1 << ADSC) | (1 << ADATE) | (1 << ADIE)| (0 << ADLAR) | (0 << ADPS2) | (0 << ADPS1) | (0 << ADPS0); // ADC ENABLE, START CONVERSION, ENABLE INTERRUPTS
ADCSRB = (1 << ADTS2) | (1 << ADTS1)| (0 << ADTS0); // TIMER1 COMPARE MATCH B
DIDR0 = (1 << ADC0D); // DISABLE DIGITAL INPUT BUFFER
sei();
}
void TIMER0_INIT(void){
TCCR0B = (0 << CS02) | (0 << CS01) | (1 << CS00);
}
void TIMER1_INIT(void){
//TCCR1A = (1 << WGM11) | (1 << WGM10);
TCCR1B = (1 << CS12) | (0 << CS11) | (1 << CS10);
//TCCR1C = ();
TIMSK1 = (1 << OCIE1B) | (1 << TOIE1);
//OCR1B = 20000;
}
ISR(ADC_vect){
//Serial.println(ADC);
//Serial.println(TCNT1);
Serial.println(ADC);
ADCSRA |= (1 << ADSC);
}