#include <avr/io.h>
#include <avr/interrupt.h>
#define toggleBit(Reg, Mask) Reg = Reg ^ Mask
ISR(ADC_vect) {
PORTB = ADC>>2; // Ausgabe der oberen 8 Bit auf PORTC
// ADCSRA |= (1<<ADSC); // ADC Wandlung starten
toggleBit(PORTB, 0x20);
}
int main (void) {
DDRB = 0xFF; // Port B.0-7 = Ausgang
PORTB = 0x00; // LEDs loeschen
ADMUX = 0x00; // Voltage Ref AVCC, Right adjusted, ADC0 input selected
ADCSRA = (1<<ADEN) | (1<<ADSC) | (1<<ADATE) | (1<<ADIE); // ADC Enabled, Start conversion, Auto Trigger Enabled, ADC interrup Enabled
ADCSRA |= 0x07; // Prescaler 1:128 -> fADC = 16Mhz/128
ADCSRB = 0x00; // ADC Control and Status Register B - free running mode
// toggleBit(PORTB, 0x20);
/*
ADMUX = 0x00; // Eingang 5 festlegen
//ADCSRA = (1<<ADEN) | (1<<ADSC) | (1<<ADIE) | (1<<ADPS2) | (1<<ADPS1); // ADC enable,
// //Wandlung starten, Interrupt enable, Teiler auf 64
ADCSRA = (1<<ADEN) | (1<<ADSC) | (1<<ADATE) | (1<<ADIE);
ADCSRA |= 0x07; // :128
ADCSRB = 0x00; // free running mode
*/
sei();
// ADCSRA |= (1<<ADSC);
while (1) {
// main loop
}
return 0;
}