Tengo un dilema.
Necesito leer los valores de ADC de PIC18F4520 . Mi configuración y código son los siguientes:
#define OSC INTIO67
int adc_result = 0;
void main(void)
{
OSSCON = 0x70; //Set it as 8Mhz.
OSCTUNEbits.PLLEN = 1; //Enable PLL 4x multiplier, thus we have 32 Mhz internal clock.
//Set PORTA direction ports as input
TRISA = 0xFF;
OpenADC( ADC_FOSC_32 &
ADC_RIGHT_JUST &
ADC_4_TAD,
ADC_CH0 &
ADC_REF_VDD_VSS &
ADC_INT_OFF, ADC_5ANA);
while (1) {
SetChanADC(ADC_CH0);
ConvertADC();
while (BusyADC());
adc_result = ReadADC();
}
CloseADC();
}
El problema es este:
- Cuando lo ejecuto en MPLAB v8.x, mi lectura está ligeramente apagada y termina mi depuración.
- No puedo volver a depurar el PIC porque me aparecen errores como "No se puede entrar en el modo de depuración".
¿Cómo soluciono esos problemas? Además, ¿mi configuración de ADC es correcta (ya que ADC requiere un reloj para realizar la conversión de ADC) con mi reloj interno? ¿Es correcto configurar la señal del reloj a 32 MHz?
Estoy programando usando PicKit2 (con el botón negro).