Hola gente hace unos cuantos dias estoy dando vueltas al adc del pic 18 ya se me nublo la mente y no le encuentro la vuelta, no se donde me estoy equivocando,
El pic tiene un cristal de 25 mhz
esta es la configuracion del micro , Saludos¡¡¡¡
#include "p18f97j60.h"
#include <adc.h>
#pragma config FOSC2 = ON
#pragma config FOSC = HS
#pragma config XINST = OFF
#pragma config STVR = OFF
#pragma config WDT = OFF
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config WDTPS = 1
#pragma config WAIT = OFF
#pragma config BW = 16
#pragma config MODE = MM
#pragma config EASHFT = OFF
#pragma config ETHLED = OFF
#pragma config ECCPMX = OFF
#pragma config CCP2MX = OFF
OpenADC(ADC_FOSC_64 & //Clock
ADC_RIGHT_JUST & //10bit
ADC_20_TAD & //20TAD
ADC_CH2 , //CANAL2
ADC_INT_OFF & //INTERRUPCIONES OFF
ADC_REF_VDD_VSS , //+3.3,GND
ADC_4ANA); //canal 0,3 analogo, resto digital
// ADCON0 = 0x09; // ADON, Channel 2
// ADCON1 = 0x0B; // Vdd/Vss is +/-REF, AN0, AN1, AN2, AN3 are analog
// ADCON2 = 0xBE; // Right justify, 20TAD ACQ time, Fosc/64 (~21.0kHz)
}
void main(void)
{
unsigned int Canal2;
char String[4];
................
case 0x61: /
//Delay10TCYx(1); // 10us para que se cargue el capacitor sample&hold
Delay10KTCYx(10); //Demora
SetChanADC(2); // Selecciono canal a convertir.-
ConvertADC(); //Comienza la conversion
while (BusyADC()){}
Canal2 = ReadADC(); //Realizo la lectura
// putrs1USART("Canal 2 = \r\n ");
printf("Canal 0 = %d\r\n",Canal2);
printf("Canal 2 = %x\r\n",Canal2);
break
...........