Moderadores: andre_luis, 51, guest2003, Renie
daniel.sloczynski escreveu:...Já tentei fazer média do valor, mas mesmo assim, o valor muda consideravelmente a cada média feita...
void init_adc (void)
{
//inicializa conversor AD (detalhes das macros no C18 Libraries)
OpenADC(ADC_FOSC_8 & ADC_RIGHT_JUST & ADC_4_TAD, ADC_CH0 & ADC_INT_OFF & ADC_VREFPLUS_VDD & ADC_VREFMINUS_VSS, ADC_1ANA);
//configura pinos como entradas
TRISAbits.TRISA0=1;
}
//le canal AN0 (faz amostragem de 60 vezes e tira média)
void le_canal_analogico0 (void)
{
SetChanADC(ADC_CH0);
for(CONTADOR_AD1=0,SOMA1=0;CONTADOR_AD1<60;CONTADOR_AD1++)
{
Delay10TCYx(5);
ConvertADC();
while(BusyADC());
RESULTADO1=ReadADC();
SOMA1+=RESULTADO1;
}
SOMA1/=60;
CANAL_AD0=SOMA1;
}
Usuários navegando neste fórum: Google [Bot] e 1 visitante