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


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 части:


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


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


  • Контроллер управления светодиодным освещением с дистанционным управлениемКонтроллер управления светодиодным освещением с дистанционным управлением
    Все активнее светодиоды входят в нашу жизнь. Всё эффективнее становится светодиодное освещение. Всё ниже опускаются цены. Всё больше появляется возможностей получения сочных цветов, простоты в управлении. Всё чаще можно увидеть …
  • Цифровой спидометр для автомобиляЦифровой спидометр для автомобиля
     Универсальность печатной платы ch-c0030pcb позволяет создавать на её основе разнообразные устройства. Одним из таких устройств является электронный спидометр для автомобиля, в котором можно задать два компаратора скорости, например,  для города и …
  • OLED RET012864E/REX012864JOLED RET012864E/REX012864J
    RET012864E/REX012864J ОЛЕД индикатор производитель Raystar-Optronics приобретался в http://www.microchip.ua/ к сожалению никакой информации на сайте поставщика нет. Поэтому решил работу с этой версией индикатора на драйвере SSD1305 предоставить на своем сайте. Так как есть ошибки …
  • LATINO – открытый проект ch-светомузыкиLATINO – открытый проект ch-светомузыки
      Проект построенный на некоторых принципах ch-светомузыка. Проект ознакомительный предназначен, для самостоятельного построения простого и эффективного светосинтезатора. Вывод осуществляется на ВОУ собранной на драйверах HL1606. Для этого была применена светодиодная …
  • Стабилизатор тока для светодиодов SN3350Стабилизатор тока для светодиодов SN3350
    SN3350 ближайший аналог ZXLD1350 Как собрать готовый вариант, читайте во второй части – http://catcatcat.d-lan.dp.ua/stabilizator-toka-na-sn3350-chast-2/ 40V  драйвер светодиодов с внутренним ключом  SN3350 – импульсный понижающий преобразователь, разработанный для того, чтобы эффективно управлять одним или группой параллельно-последовательно …
  • Проект с использованием MCC часть 03Проект с использованием MCC часть 03
    Первым делом перенастроим регистры конфигурации, следующим образом: Отключим выход генератора (CLKOUT function is disabled. I/O function on the CLKOUT pin) Включим сторожевой таймер (WDT enabled) После этой настройки мы должны …
  • Проект с использованием MCC часть 01Проект с использованием MCC часть 01
    Для изучения MCC я выбрал простой контроллер PIC16F1509. Выбор его был обусловлен богатой новой периферией которую можно изучить. Для начала была собрана схема на макетной плате Внешний вид собранной схемы …
  • DS18B20 – удаленный контроль температурыDS18B20 – удаленный контроль температуры
    Плата в корпусе Датчики температуры DS18B20 Схема подключения Вывод данных на ПК Установка дополнительных резисторов Назначение выводов This jQuery slider was created with the free EasyRotator for WordPress plugin from …
  • Проект с использованием MCC часть 11Проект с использованием MCC часть 11
    Можно несколько облагородить программу вынести наши процедуры обработки нажатия кнопок в отдельные функции. Но вы должны понимать, что это хоть и не значительно, но будет тормозить общую скорость работы проекта, …
  • Moving average – скользящее среднееMoving average – скользящее среднее
    Скользящая средняя, скользящее среднее (англ. moving average, MA) — общее название для семейства функций, значения которых в каждой точке определения равны среднему значению исходной функции за предыдущий период. Скользящие средние обычно используются с данными временных рядов для сглаживания краткосрочных колебаний …



 

Tagged with →  
Share →

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

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

Translate »

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

e-mail: catcatcat.electronics@gmail.com