0% encontró este documento útil (0 votos)
70 vistas1 página

Configuración y Lectura de ADC en C

La función ADC_init() configura el ADC para realizar conversiones analógicas a digitales. Establece el ajuste de salida a la derecha, selecciona una tensión de referencia de 5V, y fija la frecuencia de reloj del ADC en 125 KHz. La función GetData() toma un canal como parámetro, selecciona ese canal, enciende el ADC, lanza una conversión, espera a que termine, apaga el ADC y devuelve el resultado digital.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
70 vistas1 página

Configuración y Lectura de ADC en C

La función ADC_init() configura el ADC para realizar conversiones analógicas a digitales. Establece el ajuste de salida a la derecha, selecciona una tensión de referencia de 5V, y fija la frecuencia de reloj del ADC en 125 KHz. La función GetData() toma un canal como parámetro, selecciona ese canal, enciende el ADC, lanza una conversión, espera a que termine, apaga el ADC y devuelve el resultado digital.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

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)
}

También podría gustarte