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:

Anónimo dijo...

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;

Anónimo dijo...

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;

Luyten dijo...

Tienes razón, muchas gracias por la observación!

Saludos