AYTINYx4 - ejecuta otro código durante la conversión analógica

0

Estoy usando un ATTINY44 en mi proyecto actual. Como necesito hacer un cambio sensible al tiempo, me gustaría evitar cualquier retraso innecesario. Para controlar otro dispositivo (no sensible al tiempo) tengo que leer un valor analógico. Leí varios ejemplos (incluido el código que verifiqué a continuación de los núcleos de Arduino (para analogRead() ) y la mayoría está configurando el bit ADSC y luego esperando con un bucle while para que finalice la conversión. También leí sobre el modo de ejecución libre en la hoja de datos y el modo de reducción de ruido (conversión durante el tiempo de inactividad).

Así que ahora mis preguntas:

  • ¿El bucle es solo una codificación incorrecta o lo están haciendo para reducir el ruido (porque en el modo de ejecución libre, también se ejecutaría otro código durante la conversión)?

  • Si pongo la verificación de ADSC en mi ciclo principal, ¿cuáles serían las ventajas / desventajas?

  • Si este método es para reducir el ruido, ¿cuánta inexactitud agregada (tal vez una cifra aproximada) puedo esperar? ¿Puedo vivir con + -2 o 3LSB?

Código de wiring_analog.c:

// start the conversion
sbi(ADCSRA, ADSC);

// ADSC is cleared when the conversion finishes
while (bit_is_set(ADCSRA, ADSC));
    
pregunta KarlKarlsom

1 respuesta

2
  

-Esto es mientras que el bucle es solo una codificación incorrecta o lo están haciendo para reducir el ruido (porque en el modo de ejecución libre, también podría haber otro código   ejecutado durante la conversión)?

El bucle while es para esperar hasta que el ADC haya terminado. La mayoría de las conversiones de ADC dependen de las configuraciones de ADC que se establecen antes del inicio de la conversión. Como el número de bits, la velocidad de las conversiones, el modo de potencia y la velocidad del reloj ADC. Por eso es conveniente esperar hasta que el hardware diga que está hecho.

No veo un problema si desea ejecutar el código antes de verificar la finalización de la conversión de ADC.

El ruido ADC es un tema muy amplio. Si tienes una pregunta específica, pregunta. De lo contrario, sugeriría implementar su diseño basado en las notas de aplicación del procesador particular para ver si los resultados son aceptables.

  

-Si pongo la verificación de ADSC en mi bucle principal, ¿cuáles serían las ventajas / desventajas?

No veo ningún problema con eso.

  

-Si este método es para reducir el ruido, ¿cuánta inexactitud agregada (tal vez una cifra aproximada) puedo esperar? Puedo vivir con + -2 o 3LSB?

Más a menudo, lo que veo como ruido en la aplicación del procesador integrado proviene de fuera del procesador. Por ejemplo, si el procesador está activando LED brillantes de alta corriente durante y conversión de ADC.

    
respondido por el st2000

Lea otras preguntas en las etiquetas