Estimados
Estoy usando el pic32mx360F512 con XC32 v1.3.
Y estoy haciendo una medicion de tension eficaz; Tomo 50 muestras durante el lapso de 2ms y por cada interrupcion del timer 2 (que sucede cada 20ms)y luego aplico la ecuación para verdadero valor eficaz. El problema que tengo es que la variable Vef me queda en 0.
Yo mando a un webserver el valor del canal analogico y el calculo cada 1min. Y puedo obvservar que el canal del adc lo esta leyendo correctamente. por lo que sospecho que pueda ser un problema entre variables.
adjunto fragmento de codigo.
int m;
float adc1, valorMax;
int Vef;
void MCU_Init(void);
unsigned int StartTime; // Start Time
unsigned int DelayCount = 1600;
int min=0;
float aux;
void __ISR(_TIMER_2_VECTOR, IPL2AUTO) ISR_Timer2(void) {
valorMax=0;
for (m = 0; m < 50; m++)
{
adc1=ADC1BUF1; //* 3.3 / 1023.0;
StartTime = ReadCoreTimer();
while ((ReadCoreTimer() - StartTime) < DelayCount) {}
valorMax = (adc1 * adc1) + valorMax;
}
aux=(sqrt (valorMax / 50));
Vef=(aux*(250/1023));
m = 0;
IFS0CLR = _IFS0_T2IF_MASK; // Clear the timer interrupt status flag
}