Программирование PIC-микроконтроллеров на языке Си. Программирование на языке Си в среде MPLABIDE, страница 4

Рис. 6. Окно установки опции для проекта – путь для поиска библиотек

3.4. Построение проекта

После того, как были выполнены все указанные выше пункты по предварительной подготовке проекта, можно приступить к его построению, используя пункт меню Project > Build All . При этом сначала выполняется компиляция исходного файла, а затем компоновка всех файлов, входящих в проект.

Результаты построения проекта отображаются в выходном окне  Output, как показано на рис. 7.  

 

Рис. 7. Вид окна Outputпосле успешного построения проекта

3.5. Методы преодоления трудностей

Если в процессе построения проекта появились ошибки, то в окне Output появится сообщение  BUILD FAILED, информирующее о невозможности создания проекта вследствие ошибок. Типичные варианты ошибок и методы их устранения следующие.

1.  Если ошибка имеет синтаксический характер, то строка в окне Outputможет выглядеть как  “Error: syntax error”. Двойной щелчок левой кнопкой мыши по этой строке перенесет мигающий курсор в окно редактора на строку исходной программы, где имеется синтаксическая ошибка.

Примечание. Компилятор сообщает о синтаксических ошибках вместе с номером строки, в которой присутствует ошибка. Если номера строк в тексте программы не отображаются, то они могут быть включены. Для этого нужно выбрать пункт меню  Edit > Properties…  В открывшемся окне Editor Properties надо выбрать вкладку  ‘C’ File Types, и в раскрывшемся новом окне щелкнуть по кнопке с надписью  Line Numbers. Затем следует щелкнуть по кнопке  OK для подтверждения выбора.

2.  Ошибка, которая читается как “could not find stdio.h”, обычно означает, что неверно указан путь для заголовочных файлов. Обратитесь к пункту 3.3 для установки правильного пути.

3.  Ошибка, которая читается как  “could not find file ‘c018i.o’ ”, может означать, что путь к библиотечным файлам установлен неправильно. Обратитесь к пункту п.3.3 для информации об установленных путях к библиотекам.

4.  Если ошибка читается как “could not find definition of symbol ...”, то это обычно вызывается неправильным сценарием линкера. Убедитесь, что используется файл  18f242.lkr  из папки  MCC18\lkr. MPLAB IDE имеет также подобные файлы сценариев линкера для проектов, строящихся с использованием ассемблерных файлов. Всегда выбирайте файлы сценариев линкера из папки  MCC18\lkr, когда используется  компилятор MPLAB C18.

3.6. Тестирование программы с помощью симулятора MPLAB SIM

3.6.1. Для активизации симулятора выберите пункт меню  Debugger > Select Tool > MPLAB SIM . При этом появится графическое меню отладчика со значками управления.

3.6.2. С помощью пункта меню  View > Watch откройте окно наблюдения Watch и занесите в него переменные  counter,   PORTB, а также счетчик команд PCL (младший байт).  Для  выбора  переменной  counter  щелкните  по стрелке из строки  Add  Symbol,  в раскрывшемся списке найдите  строку counter  и выделите ее. Затем щелкните по кнопке Add  Symbol. Для выбора  переменной  PORTB  щелкните по стрелке из строки  Add SFR, в раскрывшемся списке найдите строку  PORTB  и выделите ее. Затем щелкните по кнопке  Add  SFR. Аналогично выберите переменную  PCL.

С помощью бегунка в нижней части окна  Watch  переместите переменные таким образом, чтобы они отображались в 16-ом и двоичном форматах. Если отсутствует отображение в двоичном формате, то поставьте стрелку курсора на строку  Symbol  Name  и щелкните правой кнопкой мыши. В раскрывшемся списке выделите строку  Binary  и щелкните по ней левой кнопкой мыши.

3.6.3. Используя значок  Reset из меню на панели отладчика, выполните сброс МК. При этом счетчик команд  PCL  сбросится в нуль. Одновременно на экране MPLAB IDE  откроется окно программы  c018i.c. Эта программа автоматически создается компоновщиком (линкером). Она выполняет определенную инициализацию МК, необходимую для правильной работы программы на языке Си.

3.6.4. Выполните  программу в пошаговом режиме, щелкая по значку  Step Into. После каждого шага зеленая стрелка в окне программы  c018i.c  будет перемещаться вниз. После нескольких шагов  начнется выполнение  исходной программы  primer1.c, что можно увидеть по перемещению зеленой стрелки по тексту. В окне наблюдения  Watch  можно убедиться, что значения переменных  counter  и  PORTB  увеличилось на 1. Начиная с этого места выполнение программы будет бесконечным в цикле  while(1).