Hallo, ich hab folgende Funktion geschrieben um von einem PIN von Port a den ADC Wert zu erhalten, aber ich erhalte komischer weise auch wenn nix dran ist werte um ca 486, aber warum ????

Code:
int getADC(uint8_t pin)
{
	int adc_value = 0;
	
	ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0); // Prescalar 8 
 
	ADMUX = pin;
	ADMUX |= (1<<REFS1) | (1<<REFS0); // use internal voltage
	ADCSRA |= (1<<ADSC);

	while (!(ADCSRA & (1<<ADIF)));	// wait for finish converting ADIF bit
	adc_value = ADCW; 	  // read result 
	ADCSRA = (1<<ADIF);	// delete ADIF, cause it could trigger ISR	
		
	ADCSRA &= (1<<ADEN);		// deactivating ADC
	return adc_value;			// return result
}