void ADC_init()
{
// Output ajuste a la derecha
ADMUX &=~ (1<<ADLAR);
//Configuración del Voltaje de referencia AV cc=5V
ADMUX |= (1<<REFS0);
ADMUX &=~ (1<<REFS1);
// Divisor de Frecuencia = 128 -> 16000000/128 = 125 KHz (entre 50 y 200 KHz)
ADCSRA |= (1<<ADPS0);
ADCSRA |= (1<<ADPS1);
ADCSRA |= (1<<ADPS2);
}
int GetData(int canal) //Función que retorna un valor
{
// Select MUX verificar la variable canal!
ADMUX &=~ 0x0F;
ADMUX |= canal;
ADCSRA |= (1<<ADEN); // Activación del ADC
_delay_us(10); // Tiempo de calentamiento
ADCSRA |= (1<<ADSC); // Start conversion
// Read flag (Indica cuando el muestreo ha terminado)
while( !(ADCSRA & (1<<ADIF)) );
ADCSRA |= (1<<ADIF); // Reset flag
//Desactivamos el ADC
ADCSRA &=~ (1<<ADEN);
return ADC; // Retorna el valor de la conversión(guarda relación con la
configuración del ADLAR)
}