Часть третья – копнём немного глубже.


Play

Вы наверное заметили, что во второй главе, вроде сначала все шло как по маслу, а потом, что бы заморгали светики, я вставил в код программы три строки настройки таймера без какого на то объяснения, почему это так. В начале когда начинаешь, что-то новое нужен результат и мы его получили, нам необходимо, что бы светики заморгали, они моргают. Сразу возникает вопрос, неужели в MHC (теперь будем так обзывать MPLAB® Harmony Configurator)  невозможно это сделать более правильным путем, ну во первых можно и нужно.

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

Далее не забудем, добавить немного штрихов, идем в настройки проекта

В разделе конфигурация, выберем железо для программирования (у меня PICkit4) выберем компилятор.

и если необходимо выберем режим оптимизации, хочу напомнить MHC всегда если не выбран уровень, будет компилировать проект с уровнем 1…

И не забудьте войти в общие параметры и задать кодировку 1251.

Теперь мы в MPLABX будем иметь следующее, пустой проект без каких либо файлов MCH будут автоматически запущен и ожидать наших действий.

Что мы имеем на этом этапе? Закладки в конфигуратора:

  • Options – Параметры – выбор различных параметров приложения в MPLAB Harmony.
  • Clock Diagram – Настройка тактового генератора – показывает текущую конфигурацию системы формирования тактовых сигналов устройства.
  • Pin Diagram – Интерактивная настройка выводов – предоставляет графический обзор того, как проект конфигурирует контакты устройства.
  • Pin Settings – Конфигурирование выводов – Предоставляет сводную информацию о том, как настроены контакты устройства.

Начнем с конфигурации тактового генератора Clock Diagram.

 

Сейчас у нас тактовая частота в настройка не нуждается, но можно для себя изменить параметры и вы увидите, как будут меняться значение величин. Что и ка настраивать будут изучать по мере необходимости. Но сейчас  стоит обратить внимание на главное, у нас имеется источник частоты.

 

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

Умножитель частоты. Почему умножитель? В таком варианте мы получаем минимальное значение излучаемых паразитных помех от задающей частоты. В этом месте наша частота будут преобразована с 8 МГц до 200 МГц. Практически все МК легко работают на частотах 220-230 МГц, но есть и экземпляры которые легко работают и на 250 МГц.

Далее у нас имеется 4 блока для формирования опорных частот. Для чего это необходимо, мы можем управлять периферийными устройствами более гибко предоставляя им те частоты которые необходимы для управления нашими задачами. Если в семействе PIC16-18, а то и в 16 битным микроконтроллерах, нам например, для получения тактовой частоты для таймера, может не хватить предварительного делителя, то в PIC32 эта проблема решается легко. По клацайте по закладкам выбора модулей и вы увидите, для какой периферии вы можете изменить тактовую частоту.

Далее мы имеем 8 модулей для настройки шины тактовой частоты уже конкретно периферии. Здесь также можно в окне увидеть для какой периферии будут выполнены изменения по тактовой частоте. Например модуль PBCLK3, затронет изменение тактовой частоты на входе таймеров.

так беглый ликбез по тактовому генератору мы прошли. По мере решения задач, мы постоянно будем возвращаться к тактовому генератору для изменения параметров системы под наши требования. Из всего мы только поняли, что процессор настроен на тактовую 200МГц, а периферия на 100МГц.

Перейдем в закладку Pin Diagram и повторим конфигурирование портов.

После настройки у нас должен быть вид, порты RB0 и RB1 настроены на выход.

Теперь выберем закладку Pin Settings и проверим настройки

Обратим внимание на состояние LAT регистра уровень низкий.

Выполним операцию создания кода проекта, нажмем на кнопку Code.

 

MHC предложит выбрать вариант сохранения конфигурации, сохраним.

Далее предложи вариант выбора стратегии для внесения изменений в наш проект, разберем это окно на “запчасти”.

MHC предлагает 4 стратегии следующие стратегии, назовем так слияния кодов. Что под этим подразумевается, что у вас уже есть, что то (или пока еще ничего нет) на писаного и вам необходимо внести изменения в ваш проект.


Prompt Merge for all Differences – Пользователю будут открываться “окна слияния” для всех создаваемых файлов и он должен принять решение вводить эти новые изменения или нет. Это будет включать в себя файлы, которые не имеют модификаций пользователя.
Prompt Merge for All User Changes – Пользователю всегда будет предложено “окно слияния” для всех сгенерированных файлов, которые содержат изменения внесенные пользователем. Вы всегда должны выбирать эту стратегию слияния после изменения чего-либо на вкладке «Параметры», «Гармония MPLAB и Конфигурация приложения» (Options tab, MPLAB harmony & Application Configuration).
Prompt Merge For New User Changes – Пользователю будет предложено “окно слияния” для всех сгенерированных файлов, которые содержат пользовательские изменения. Пользователю не будет предложено снова объединить изменения для данного файла, если пользователь не внесет дополнительные изменения в этот файл.
Automatically Overwrite User Changes – Все сгенерированное содержимое файла будет заменено содержимым этой операции генерации. Любые изменения внесенные пользователем будут перезаписаны.

Дополнительные опции.

Create a backup of the current project state – Предоставляет возможность вернуть все сгенерированные файлы в их исходное состояние до генерации кода.
Enable recommended compiler optimizations (if not set) – Для проектов MPLAB Harmony настоятельно рекомендуется уровень оптимизации компилятора, по крайней мере, «O1». Эта опция установит уровень оптимизации компилятора на «O1», если в настоящее время уровень оптимизации не установлен.
Copy framework files to local configuration directory – Предоставляет возможность генерировать автономный проект. Все необходимые файлы будут добавлены в проект MPLAB X IDE, поэтому он может быть собран и запущен без платформы MPLAB Harmony.


Выберем параметр Prompt Merge for All User Changes и с генерируем проект. Загрузим в нашу демоплату, со светодиодами заметим ничего не произошло, как не горели так и не горят. Вернемся во вкладку Pin Settings  и изменим состоянии порта RB0 с низкого на высокий.

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

Идем далее нам необходимо “включит” таймер 1. Заходим в закладку Options – Параметры, развернем дерево Harmony Framework Configuration (конфигурация структуры).

Откроем Системные службы, выберем таймер, поставим птичку пользовательские настройки таймера, выберем, что мы будем настраивать таймер 1.

Больше мы никуда в этом месте “шкодливыми ручками” не лезем, потому, что нифига дальше не понимаем. После этого переместимся к дереву драйвера (Drivers), открываем таймер (птичка там уже стоит) выбираем реализацию драйвера как статическую (STATIC), отключаем прерывания, нам они (пока) не нужны, ставим птичку. выбираем модель драйвера TMR_ID_1 (она уже выбрана) и вводим параметр для предделителя 256 (если не выбрано другое) и задаем период максимальный 65535 (это максимально допустимое значение регистра периода таймера RP1). Т.е. настраиваем на работу таймера по всему ему возможному значению.

Запустим генерацию кода, сохраним конфигурацию, в предложенном окне, стратегию не меняем. Теперь добавим в “супер-цикл” вариант переключения светодиодов.

Ну и конечно в начала описание для светиков.

Выполним компиляцию и прошьем демоплату, для этого нажмем 

Результат, светики по переменно мигают. Что мы сделали мы при помощи MHC полностью настроили таймер и заставили работать проект мигания двух светиков, попеременно.

Сделаем еще одно изменение посмотрим как влияет изменение тактовой часто на входе таймера, и заодно разберемся как это делается в MHC. Помните где мы говорили, о PBCLK3Вернемся в Clock Diagram. Изменим значение делителя в модуле с 2 на 25. Сформируем на входе таймера тактовую частоту 8МГц. Выполним всю последовательность для сборки, компиляции и тестирования проекта.

После запуска программы на демоплате, частота мигания значительно уменьшиться. В общем все классно и круто. Но все так, только чуточку не так. Для профессиональной работы в MCH необходимо пройти некоторый ликбез по понимаю, “где что, зачем и почём” ;). поэтому 4 часть посвятим теории MHC.

Проект к 3 части:

Icon

MPLAB® Harmony – или как это просто! Часть 3. Демопроект 281.11 KB 5 downloads

Демопроект к 3 части. ...
Login Required Message:

Читайте в следующей части Project Structure – Структура проекта.


Это может быть интересно


  • Контроллер управления светодиодным освещением с дистанционным управлениемКонтроллер управления светодиодным освещением с дистанционным управлением
    Все активнее светодиоды входят в нашу жизнь. Всё эффективнее становится светодиодное освещение. Всё ниже опускаются цены. Всё больше появляется возможностей получения сочных цветов, простоты в управлении. Всё чаще можно увидеть …
  • PIC18 – модуль DMAPIC18 – модуль DMA
    Введение   Модуль прямого доступа к памяти (DMA) предназначен для обслуживания передачи данных непосредственно между различными областями памяти без вмешательства процессора. Исключив при этом необходимость в интенсивной  обработки прерываний процессором, …
  • CCP модуль для декодирования ИК-кодов пультов ДУCCP модуль для декодирования ИК-кодов пультов ДУ
    Множество изготовителей для своих пультов дистанционного управления на ИК лучах используют принцип широтно-импульсной модуляции. В таких кодах бит единицы представляется импульсом большой длительности, а ноль импульсом короткой длительности. Внешний вид …
  • PIC18F25K42 – v. A001 – выявленные баги.PIC18F25K42 – v. A001 – выявленные баги.
    Модуль I2C Не работает при использовании в стандартной конфигурации MCC. Требует особой нестандартной конфигурации и управления для нормальной работы. Обойти Обход проблемы возможен библиотека см статью. Модуль ADC2 На выводе RA0, …
  • Часы + Календарь + Термометр + …Часы + Календарь + Термометр + …
    Часы + Календарь + Термометр + Индикатор влажности + Секундомер + Дистанционное управление на ИК лучах (пульты на RC-5 протоколе) + Автоматическая регулировка яркости + Возможность вывода данных через USB, на плате ILLISSI_B4_primum …
  • Цифровой спидометр для автомобиляЦифровой спидометр для автомобиля
     Универсальность печатной платы ch-c0030pcb позволяет создавать на её основе разнообразные устройства. Одним из таких устройств является электронный спидометр для автомобиля, в котором можно задать два компаратора скорости, например,  для города и …
  • Проект с использованием MCC часть 03Проект с использованием MCC часть 03
    Первым делом перенастроим регистры конфигурации, следующим образом: Отключим выход генератора (CLKOUT function is disabled. I/O function on the CLKOUT pin) Включим сторожевой таймер (WDT enabled) После этой настройки мы должны …
  • REFERENCE CLOCK OUTPUT MODULEREFERENCE CLOCK OUTPUT MODULE
    REFERENCE CLOCK OUTPUT MODULE Модуль формирования опорного тактового сигнала Модуль опорного тактового сигнала обеспечивает возможность посылать сигнал синхронизации на тактовый опорный выходной контакт или контакты (CLKR) в зависимости от конфигурации выводов …
  • Обновление ESP8266 c ESPFlashDownloadTool_v3.6.3Обновление ESP8266 c ESPFlashDownloadTool_v3.6.3
    Технология обновления следующая: Загружаем программу со страницы espressif.com. Разархивируем. Где находятся файлы, для прошивки? Заходим в каталоги Подключаем по схеме в статье WiFi ESP8266 (замыкаем BT2, перемычка). Запускаем программу, откроется два …
  • MCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналовMCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналов
    При проектировании простых устройств автоматики, часто необходимо иметь механизм звукового оповещения. Самый верхний уровень, это формирование голосовых сообщений, но об этом, как то по позже… В самом примитивном варианте можно …



 

Tagged with →  
Share →

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Translate »

Copyright © Catcatcat electronics 2013-2019. Все права защищены.
Копирование разрешается только с указанием активной ссылки на правообладателя.

e-mail: catcatcat.electronics@gmail.com