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

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

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

  2. Евгений:

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

    while (1)

    {

    }

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

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

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

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

*