Arkadaşlar AN0 analog girişine uygulanan sinüs sinyalinin voltaj ve frekans değerlerini lcd de yazdırmak istiyorum ancak sürekli 0.00 yazıyor. Hatanın nerde olduğunu anlamadım ama ADC configürasyonunda olduğunda düşünüyorum. Kodlar aşağıya ekliyorum bi yardımcı olur musunuz ?
void init_ADC1(void)
{
AD1CON1bits.FORM = 3;
AD1CON1bits.SSRC = 7;
AD1CON1bits.AD12B = 0;
AD1CON2bits.VCFG=0;
AD1CON2bits.CHPS = 0;
AD1CON2bits.SMPI=0b00000;
AD1CON3bits.SAMC=1;
AD1CON3bits.ADRC=0;
AD1CON3bits.ADCS =1; //
AD1CHS0bits.CH0SA=0;
AD1PCFGL=0xFFFF; //
AD1PCFGLbits.PCFG0=0; //
IFS0bits.AD1IF = 0; // Clear the A/D interrupt flag bit
IEC0bits.AD1IE = 0; // Do Not Enable A/D interrupt
AD1CON1bits.ADON = 1;
}
void main(void) {
float data;
unsigned char buffer1[20];
init_ADC1();
Glcd_Init();
Glcd_Fill(CLEAR);
Glcd_SetFont(Terminal12x16, 12, 16, 32 ,127);
Glcd_ConstText(0, 2, "Graphic");
Glcd_ConstText(0, 4, "Lcd 128x64");
Delay_ms(500);
Glcd_Fill(CLEAR);
while(1)
{
//Glcd_SetFont(Font_6x8, 6, 8, 32 ,127);
data = ADC1BUF0;
sprintf(buffer1,"%2.2f",data);
Glcd_Text(0, 2, buffer1);
}
}