Я новичок в использовании микроконтроллеров PIC и работаю над проектом, который включает считывание аналогового значения. Я использую PIC16F877A. Я нашел код для использования ADC, опубликованный ниже, однако, когда я пытаюсь его скомпилировать, я получаю сообщение об ошибке Error [192] C:\Users\Owner\Documents\Pic Projects\Analog\Main.c; 20.1 неопределенный идентификатор "GO_nDONE". Вот мой код
#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()
{
}
В разных версиях компилятора HiTech C выводы/порты PIC определяются по-разному. Затем, когда Microchip поглотила HiTech C, некоторые из них были снова изменены.
Если вы посмотрите в свой файл pic.h, вы увидите, на какой файл определений ссылается PIC16F877A. Затем просмотрите этот файл, чтобы найти сопоставление #define...
Например, в PICC 9.50 он определяется как ADGO. В версии 9.83 он определяется как ADGO и GODONE. Я также видел ссылки на GO_DONE и GO_nDONE.
Вы можете просто попробовать их и найти, какой из них работает. Однако я предлагаю вам найти файл, чтобы вы могли увидеть и другие сопоставления контактов/портов/регистров.
Удачи!
Дэйвид
Марковян8261
Дэйвид
Марковян8261