PIC Урок 2. Первый проект в MPLAB X IDE



После краткого изучения архитектуры и возможностей контроллеров PIC пришло время нам попробовать себя в программировании данных контроллеров, так как без программы микроконтроллер — это бесполезная микросхема.

Только чтобы попробовать себя в программировании, обычно требуется какая-то среда программирования (не в блокноте же мы будем писать код), а также компилятор. Для этого у компании Microchip есть бесплатный IDE — это MPLAB X IDE. Давайте её для начала скачаем. Для этого идём на официальный сайт Microchip и идём по пунктам меню DESIGN SUPPORT -> Development Tools -> Software Tools For PIC® MCUs And DsPIC® DSCs -> MPLAB® X IDE

Image00

И попадаем на следующую страницу, в которой выбираем закладку Downloads, в которой скачаем последнюю версию среды разработки (нажмите на картинку для увеличения изображения)

Image02_0500

Установим среду

Image03  Image04

Путь оставим предложенный по умолчанию, если у нас нет Proxy, то отключим их

Image05

Далее тоже оставим всё по умолчанию

Image06 Image07

И программа установится на наш компьютер

Image08

Отключаем все галки и жмём Finish

Image09

Эти галки гласят о том, что у нас не установлен компилятор, также советуют установить фреймворк для удобства разработки. Всё это мы проделаем самостоятельно потом. Компилятор в среде уже есть, правда только для ассемблера. Но, так как мы решили писать на C, то компилятор нам всё-таки скачать и установить придётся, но чуть позже.

Попробуем запустить нашу среду разработки, чтобы хотя бы убедиться, что всё у нас нормально установилось. И, не создавая никаких проектов, закроем её.

Теперь, соответственно, чтобы нам писать код на C, потребуется компилятор. Компиляторы для контроллеров разной битности (8, 16 и 32) отдельные.

На официальном сайт Microchip проследуем по пунктам меню DESIGN SUPPORT -> Development Tools -> Software Tools For PIC® MCUs And DsPIC® DSCs -> MPLAB® XC Compilers

Image10

На открывшейся странице перейдём по закладке Downloads и скачаем последнюю версию 8-битного компилятора (XC 8) (нажмите на картинку для увеличения изображения)

Image11_0500

 

 

Установим компилятор

Image12  Image14  Image13

Путь оставляем по умолчанию

Image15

Включим все галочки

Image16 Image17

Начнётся установка

Image18

 

 

После установки жмём Next, никакой ID не запоминаем, нам профессиональная лицензия не нужна, воспользуемся свободно-распространяемой. На сайте можно почитать об ограничениях свободной лицензии. Они очень незначительны

Image19 Image20

Ещё раз запустим среду программирования MPLAB X IDE. Закроем там стартовое окно и перейдём на вкладку Projects

Image21

Как видим, у нас тут пусто. Исправим эту ситуацию, создав новый проект. Для этого выберем пункт меню File -> New Project…

Image22

Выбираем Standalone Project и идём далее

Image23

Выберем из выпадающего списка наш контроллер, отфильтровав выше для удобства по семейству

Image24

Выбираем Sinulator, так как пока мы отлаживать проект будем именно в нём. Да и мой контроллер PICkit 2 неоригинальный не поддерживается данной средой. А загружать созданную нами впоследствии прошивку мы будем с помощью специальной программы

Image25

В следующем окне выбираем наш компилятор и идём далее

Image26

В следующем окне назовём наш первый проект BLINK01, выберем папку для его хранения и оставим галку напротив того, чтобы наш проект стал главным и заетм жмём Finish

Image27

Проект появится в дереве проектов.

Создадим в нём файл main.c, выбрав соответствующий пункт контекстного меню в папке Source Files

Image28

В открывшемся окне исправим имя файла, чтобы он был именно main.c ибо нам так как-то привычнее и нажмём Finish

Image29

Файл откроется самостоятельно. В нём будет уже некоторый код

#include <xc.h>

void main(void) {

return;

}

То есть у нас уже подключена стандартная библиотека, которой нам на первых порах будет достаточно, так как в ней внутри находится подключение многих необходимых библиотек. И также у нас есть точка входа в программу — главная функция main.

Также мы знаем, что контроллеру необходимо постоянно находиться в работе. Для этого мы в каждый проект в главную функцию добавляем бесконечный цикл. Добавим и в этот проект

void main(void) {

  while (1)

  {

  }

  return;

Давайте соберём наш проект, нажав соответствующую кнопку в панели инструментов

Image30

Проект наш собран. Давайте посмотрим информацию в окне вывода сообщений

Image31

Это информация о затраченных и свободных ресурсах различных типов памяти контроллера.

В самом конце информационного сообщения находится путь к файлу прошивки  (нажмите на картинку для увеличения изображения)

Image32_0500

Убедимся, что файл прошивки там действительно присутствует

Image34

Мы видим, что прошивка на месте, также в данной папке присутствует ряд других файлов с отладочной и другой информацией.

Думаю, что на этом мы наш сегодняшний урок закончим. В дальнейшем мы напишем какой-то полезный код в наш проект, попробуем его прошить сначала в протеусе, а затем в настоящий контроллер, собрав соответствующую схему и подключив программатор.

 

 

Предыдущий урок Программирование МК PIC Следующий урок

PIC Первый проект в MPLAB X IDE

17 комментариев на “PIC Урок 2. Первый проект в MPLAB X IDE
  1. Nick:

    Вы хорошо излагаете материал (очень интересно, спасибо), но видно не любите вы данный тип микроконтроллеров. Публикуйте пожалуйста почаще уроки на данном кристалле, они также интересны как и остальные.

  2. Евгений:

    первый код который мне удалось правильно скомпилировать))) Но он у вас с ошибками
    void main(void) {

    while (1)

    {

    }

    return;
    Для меня как для начинающего чайника в этом деле даже лучше. Глубже Си освою. Но лучше об этом придупреждать или повнимательней печатать.

    • По идее не может быть такого. Я код поэтому всегда копирую в проект именно с сайта. Во-первых, чтобы не искать потом ошибок в проекте при ручном вводе, а во-вторых, чтобы на сайте также не было ошибок. Причём я делаю это дважды. До съёмки я прогоняю полностью весь сценарий с сайта, а затем ещё и в момент съёмки. «return;» там по идее не нужен, но автогенератор его ставит всегда и в примерах во многих тоже стоит.
      Но вообще все равно спасибо за замечание! Я обязательно учту.

      • Дмитрий:

        Тут всего лишь Вы не выделили закрывающую фигурную скобку после ,return;,
        (
        ……. этот проект

        void main(void) {

        while (1)

        {

        }

        return;

        Давайте собе……
        )

  3. Олег:

    Приветствую всех ! Помогите мне новичку решить проблему. Скачал последнюю версию MPLAB а она с глюками работает на моей Windows XP SP3. Если поставлю 7 вместо XP то это избавит от проблем ?

  4. Олег:

    Приветствую ! Что делать, если последняя версия MPLAB не работает на XP ?

  5. AVP:

    Здравствуйте!
    До этой статьи делал проект на AVR, все прекрасно получилось, спасибо Вашим публикациям!!! Теперь хочу сделать проект на PIC. Но скачав и установив с MICROCHIP (12.05.2020) все программы и напечатав первую программу, возле строк начали появляться «лампочки предупреждения». Компилируется все нормально, в Протеусе все работает, но эти лампочки… меня напрягают, если честно. Да, я знаю как их отключить, но это не выход, а вдруг если отключу их то не увижу что то важное. Может мне другую версию скачать, как у Вас?
    P.S. хотелось бы очень! пообщаться лично!

  6. Константин:

    Здравствуйте!
    Не могу создать проект,выскакивает ошибка в последнем окне «Project Folder already exists and is not empty. File Makefile exists.».Не могу понять,с чем это связано
    Директива выглядит следующим образом: C:\MASTERs\LABs\Xpress\CIP

  7. Murz0id:

    Подскажите пожалуйста где можно скачать MPLAB, на сайте нет доступных ссылок…..

  8. Павел:

    У меня тоже проблема с проектом, который якобы существует. Программа напихивает туда кучу файлов, а потом ругается, что вот — проект то существует!!! Создается ощушение, что она параллельно уже проект пытается открыть,так как маке файл блокирован и удалить его не получается, пока не закроешь «мастер» создания проекта. Как будто последовтельность обработки напутана. А если выбираешь — удалить существующий проект — то сожно хоть до утра жмать на финишь и окно не закроется

  9. Здравствуйте. make[2]: *** [build/default/production/main.p1] Error 1
    make[1]: *** [.build-conf] Error 2
    make: *** [.build-impl] Error 2
    main.c:10:1: error: expected '}'
    ^
    Что это означает?

  10. Анатолий:

    У меня выдал ошибку самый первый проект. ((
    Не понимаю в чем причина, еще и строк толком нет, а уже что-то не вяжется…

    make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
    make[1]: Entering directory 'D:/termo/term.X'
    make -f nbproject/Makefile-default.mk dist/default/production/term.X.production.hex
    make[2]: Entering directory 'D:/termo/term.X'
    «C:\Program Files\Microchip\xc8\v2.36\bin\xc8-cc.exe» -mcpu=18F66J15 -c -mdfp=»C:/Program Files/Microchip/MPLABX/v6.00/packs/Microchip/PIC18F-J_DFP/1.5.44/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=default -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,—data-init -mno-keep-startup -mno-download -mdefault-config-bits -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o build/default/production/main.p1 main.c
    «C:\Program Files\Microchip\xc8\v2.36\bin\xc8-cc.exe» -mcpu=18F66J15 -Wl,-Map=dist/default/production/term.X.production.map -DXPRJ_default=default -Wl,—defsym=__MPLAB_BUILD=1 -mdfp=»C:/Program Files/Microchip/MPLABX/v6.00/packs/Microchip/PIC18F-J_DFP/1.5.44/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,—data-init -mno-keep-startup -mno-download -mdefault-config-bits -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -Wl,—memorysummary,dist/default/production/memoryfile.xml -o dist/default/production/term.X.production.elf build/default/production/main.p1
    :11761:: warning: (1311) missing configuration setting for config word 0x17FF8; using default
    :11761:: error: (1504) the PIC18 extended instruction set was enabled but is not supported by this compiler
    :11761:: warning: (1311) missing configuration setting for config word 0x17FF9; using default
    :11761:: warning: (1311) missing configuration setting for config word 0x17FFA; using default
    :11761:: warning: (1311) missing configuration setting for config word 0x17FFB; using default
    :11761:: warning: (1311) missing configuration setting for config word 0x17FFD; using default
    (908) exit status = 1
    nbproject/Makefile-default.mk:138: recipe for target 'dist/default/production/term.X.production.hex' failed
    make[2]: Leaving directory 'D:/termo/term.X'
    nbproject/Makefile-default.mk:91: recipe for target '.build-conf' failed
    make[1]: Leaving directory 'D:/termo/term.X'
    nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
    make[2]: *** [dist/default/production/term.X.production.hex] Error 1
    make[1]: *** [.build-conf] Error 2
    make: *** [.build-impl] Error 2

    BUILD FAILED (exit value 2, total time: 3s)

  11. rediska:

    MPLab X компиляет простой проект с одним пустым while-ом полторы минуты. Ось Вин7, версия MPlab 6. Никто не сталкивался с таким?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*