lunes, 3 de febrero de 2014

Función promedio para lectura analógica desde PIC (MikroC)

Cómo muchos hemos notado, la conversión A/D en PIC es un tanto ruidosa. El método de promediación no es la solución definitiva al ruido del ADC, pero mejora considerablemente los resultados:

unsigned int promediolectura(void){

  int i =0;
  unsigned int a = 0;

  for (i=0; i <16;i++){a+ =
ADC_Read(0);}
  a = a >>4;

  return a;
}

3 comentarios:

  1. Para que eso funcione me aprece que los loops deben ser de 0 a 15. Y se puede usar un solo loop

    for (i=0; i <16;i++){
    a+=ADC_Read(0);
    }

    a <<= 4;

    ResponderEliminar
  2. Corrigo:

    Para que eso funcione me parece que los loops deben ser de 0 a 15. Y se puede usar un solo loop

    for (i=0; i <16;i++){
    a+=ADC_Read(0);
    }

    a >>= 4;

    ResponderEliminar
  3. Tienes razón, muchas gracias por la observación!

    Saludos

    ResponderEliminar