Невозможно скомпилировать (собрать) код с помощью MPLAB для PIC с компилятором CCS C

Я новичок, пытаюсь опереться на PIC, скачал MPLAB и MPLAB X ide. Я делал это около 100 раз и достаточно просмотрел Интернет, прежде чем задать этот вопрос, но мой код не скомпилирован и всегда терпит неудачу. Вот что я сделал: -

  1. Создал новый проект с помощью PROJECT WIZARD
  2. Отредактировал код
  3. Скопировал библиотеку "16F871.H" в обе папки (в которой я создал проект) и добавил ее в файлы заголовков в MPLAB IDE.

Вот мой код

*> // IFIN.C Tests an input
#include " 16F877A.h "
void main()
{
int x; // Declare variable
output_D(0); // Clear all outputs
while(1) //
{
x = input(PIN_C0); // Get input state
if(x = = 1)output_high(PIN_D0); // Change output
}
}*

Но при компиляции кода я получаю ошибку при выполнении:

"C:\Program Files\PICC\Ccsc.exe" +FM "NEW.c" #_ DEBUG=1 +ICD +DF +LN +T +A +M +Z +Y=9 +EA # _16F877A=TRUE

* Ошибка 18 "NEW.c", строка 2 (10,23): файл не может быть открыт

Not in project "C:\Users\jatin\Desktop\DHAKKAN PIC\ 16F877A.h "

Not in "C:\Program Files\PICC\devices\ 16F877A.h "

Not in "C:\Program Files\PICC\drivers\ 16F877A.h "

* Ошибка 128 "NEW.c", строка 2 (10,17): перед этой строкой требуется #DEVICE

* Ошибка 12 "NEW.c" Строка 6(9,10): Неопределенный идентификатор -- output_D

* Ошибка 12 "NEW.c", строка 9(10,11): неопределенный идентификатор -- ввод

* Ошибка 51 "NEW.c", строка 10 (8,9): здесь должно быть числовое выражение.

  5 Errors,  0 Warnings. Build Failed. Halting build on first failure as requested. BUILD FAILED: Mon Jul 08 15:09:17 2013

Я был бы признателен вам, если бы вы могли мне помочь.

Ответы (1)

Самая непосредственная проблема, которую я вижу, это следующая строка кода:

#include " 16F877A.h "

Вы должны удалить пробелы, потому что он пытается открыть файл, содержащий пробелы, поэтому вы получаете несколько ошибок, связанных с этим файлом. Хотя в целом дополнительные пробелы не имеют большого значения в коде C/C++ для любых литералов, заключенных в кавычки, они, безусловно, имеют значение.

Другая область, где вы не должны вставлять лишние пробелы, также находится между операторами, например, ==поэтому пробел между этими двумя символами также должен быть удален из строки 10, поэтому это должно выглядеть так:

if(x == 1) output_high(PIN_D0); // Change output