Estoy leyendo el código en C para convertir de analógico a digital y no entendí esta parte. No publiqué todo el código pero esto es suficiente para entender el punto de mis preguntas ya que mis preguntas son un poco generales.
void ad_isr (void) interrupt 10 /*I didnt understand when does the program calls the interrupt and why do we need an interrupt?*/
{
lowbytevoltage = ADC0L; highbytevoltage = ADC0H;
voltage = highbytevoltage*256 + lowbytevoltage;
array [b] =voltage;
if (b == 31)
{
for (c=0; c!=32; c++)
{
Voltage = Voltage + array[c];
}
voltage = voltage/32;
¿Por qué necesitamos sumar 32 voltajes consecutivos y luego dividir por 32? También vi en un código de ejemplo de internet
for(i=0;i<16;i++)
{
ConvertADC();
while(BusyADC());
ADCResult += (unsigned int) ReadADC();
}
ADCResult /= 16;
Así que pensé que pueden tener algo entre ellos ya que 32 es el doble de 16