uint16_t ADC_Read_free_running_mode( uint8_t channel ) { static uint8_t channel_vorheriger, result; if (channel_vorheriger!=channel) //wenn ein neuer Kanal gewählt wurde, dann Kanal einstellen und Testmessunf { ADMUX = (ADMUX & ~(0x1F)) | (channel & 0x1F); // Kanal waehlen, ohne andere Bits zu beeinflußen _delay_us(250); // 250us Warten, damit die Elektronik sich darauf einstellen kann, verlangsamt das Programm unnötig result=ADCW; //eine Messung machen die verworfen wird } channel_vorheriger=channel; return ADCW; // ADC auslesen und zurückgeben }