Рис. 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).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.