Soy nuevo en el uso de microcontroladores PIC y estoy trabajando en un proyecto que implica leer un valor analógico. Estoy usando el PIC16F877A. He encontrado el código para usar el ADC publicado a continuación, sin embargo, cuando intento compilarlo, aparece el error Error [192] C:\Users\Owner\Documents\Pic Projects\Analog\Main.c; 20.1 identificador indefinido "GO_nDONE". Aquí está mi código
#include<htc.h>
#include<pic.h>
#define _XTAL_FREQ 20000000
__CONFIG(UNPROTECT & PWRTDIS & WDTDIS & HS & LVPDIS);
void InitADC(void)
{
ADCON1 = 0x80;
TRISA = 0x2f;
TRISE = 0x07;
ADCON0 = 0x81;
}
unsigned int GetADCValue(unsigned char Channel)
{
ADCON0 &= 0xc7;
ADCON0 |= (Channel<<3);
__delay_ms(10);
GO_nDONE = 1;
while(GO_nDONE);
return ((ADRESH<<8)+ADRESL);
}
void main()
{
}
Las diferentes versiones del HiTech C Compiler tienen pines/puertos PIC definidos de diferentes maneras. Luego, cuando Microchip absorbió HiTech C, algunos se cambiaron nuevamente.
Si observa su archivo pic.h, verá a qué archivo de definiciones se hace referencia para el PIC16F877A. Luego, busque en ese archivo para encontrar el mapeo #defines...
Por ejemplo, en PICC 9.50, se define como ADGO. En 9.83, se define como ADGO y GODONE. También he visto referencias a GO_DONE y GO_nDONE.
Simplemente puede probar estos y encontrar cuál funciona. Sin embargo, le sugiero que busque el archivo para poder ver también las otras asignaciones de pin/puerto/registro.
¡Buena suerte!
David
markoviano8261
David
markoviano8261