Проект с использованием MCC часть 12-1

Views: 922


В настоящее время без визуализации информации уже не интересно. Поэтому научимся выводить информацию на дисплей. Для это возьмет простенький OLED RET012864E/REX012864J я такой приобретал в фирме “Гамма-Украина”, описание можно почитать здесь http://catcatcat.d-lan.dp.ua/oled-ret012864e-rex012864j/ . Индикатор по умолчанию выпускается сконфигурированным на работу с параллельным интерфейсом, но драйвер может работать и I2C и SPI. Мы с конфигурируем его для работы с I2C.

Демонстрация визуализации данных акселерометра

 


Как всегда начнем с имения нашей схемы, нам надо внести небольшие имения. Индикатор предназначен для работы в трех вольтовом питании,  а наша схема питается, от 5 вольт. По техническим характеристикам PIC16F1509 может работать в в диапазоне питающих напряжений 2,3 -5,5 вольта. Поэтому заменим стабилизатор на 3,3 вольтовый. Если этого не сделать, то придется устанавливать дополнительный стабилизатор на 3,3 вольта, для питания индикатора и преобразователи уровня (хотя бы на полевых транзисторах).

 

Для начала перенесем кнопки на порты RA5 и RA4 это освободит нам порты для I2C (ну и в дальнейшем для работы с UART).

Подключение индикатора выполним с управлением сброса и включением высоковольтного преобразователя.

Немного отвлечемся от темы, все ОЛЕД для питания матрицы требуют повышенного напряжения от 9 до 12 вольт. Есть драйверы в которых этот преобразователь уже встроен и достаточно, подключения только внешних конденсаторов, но для “больших” матриц приходиться делать внешний повышающий DC/DC. Нашем индикаторе он собран на плате индикатора.

Переделка программы начнется с изменения подключения кнопок, это даст возможность понять еще их работу. Во первых для работы кнопок мы используем прерывания по имению состояния на входах, по  этому подключить мы можем только на выходы в которых есть эта функция, для этого обратимся к таблице 1 описания:

Из нее видно, что к таким выводам относятся первые 10 входов (Interrupt функция IOC) у нас свободными и удобными пока RA4 и RA5.

Для начала немного наведем порядок в файле pin_manager.c уберем строку, это даст нам в дальнейшем упростит работу

должны получить

Вызовем МСС, перейдем в модуль настройки выводов микроконтроллера

И перестроим порты с RB6 и RB7 на RA4 и RA5, было

должно стать

Нажимает кнопку генерировать код

 Конфигуратор вы даст, то, что он “сгенерил” и то, что есть.

Первое, что вошло в конфликт, это то, что он предлагает удалить наши флаги, это мы игнорируем. Следующее несоответствие мы устраняем тыканьем по стрелочке.

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

Следующие два изменения мы принимает, тут у нас изменились порты наших кнопок,

эти два изменения принимаем, кликая на стрелочки

Крутим далее вниз (напоминаю, устанавливаем курсор над правым окном и крутим колесико мыши). Следующее интересное не соответствие, MCC допустил одну ошибку, мы задавали прерывание по негативному состоянию кнопки а он в левом окне рисует нам нули.

Мы принимаем изменения, установим значения параметра вида прерывания по негативному фронту в “1” .

Должно быть так:

Остальные изменения принимаем, обратите внимание, что прерывания **6** и **7** заменяются на прерывания **4** и **5**. Наше изменение так и будет “светиться”, но это не должно вас волновать, главное, что мы правы, нам необходимо прерывание по негативному фронту, когда кнопка нажата.

Наводим мышку на правую сторону окна и “крутим в низ”, находим следующее несоответствие

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

следующее несоответствие

здесь также обратим внимание, что в одном месте где IOCBF7, а IOCBF5 мы должны подправить комментарий, а все остальные делаем “на автомате”, должны получить:

На этом редактирование файла pin_manager.c окончено, переходим к файлу заголовка нашей библиотеки pin_manager.h. YНапомню двойной щелчок по названию файла.

Первое изменение наше, его оставляем и второе тоже… только изменим описание наших кнопок на RA4 и RA5

а далее случилось чудо, в первый раз MCC, “забыл” добавить описание функций прерывай в заголовок и нам пришлось вносить все вручную

А теперь все по высшему классу, клацаем на стрелки  и получим вне необходимые изменения. Прокрутите файл “Все как в лучших дамах Ландона и Парыжу“.

Далее нам необходимо закрыть окно Merge[MCC]

Подтвердим изменения

Теперь за программируем нашу макетную плату (перед этим перенесем переключение кнопок на порты RA4 и RA5 и убедимся что все работает!

Для компиляции проекта не забудьте клацнуть на какой-то файл проекта, например на main.c. Если вы будете находиться например на открытом окне MCC функции кнопок компиляции будут не активны!

В этой части мы используя MCC перенесли функции кнопок управления с одних портов не другие. Конечно полностью на автомате все выполнить нельзя, но 95% всю нагрузку взял MCC. Как по мне это было прикольно, быстро и без мозгового штурма.


Проект для тестирования 

Значок

Проект с использованием MCC часть 12-1 882.56 KB 82 downloads

В настоящее время без визуализации информации...


В следующей главе Подключаем ОЛЕД индикатор и изучаем I2C…


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


  • MCC – K42 – настройка модуля DMAMCC – K42 – настройка модуля DMA
    Views: 739 MCC – в версии v.3.95.0 и начиная ядра 4.85.0 конфигуратор предоставляет графический интерфейс для настройки модуля DMA. Для начала: Посмотреть какая версия МСС можно в закладке версии, если …
  • WiFi ESP8266 – AT команды связанные с функцией Wi-FiWiFi ESP8266 – AT команды связанные с функцией Wi-Fi
    Views: 5237 AT команды связанные с функцией Wi-Fi Функции Wi-Fi подключения, запускаться из командной строки Команда Описание  1 AT+CWMODE Проверка, настройка режима работы Wi-Fi (sta/AP/sta+AP), (не рекомендуется для новых проектов). 2 …
  • MCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМMCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМ
    Views: 1104 Во многих системах управления, для формирования управляющих сигналов требуется модуль ШИМ, он позволяет не только формировать импульсы заданной длительности, но и с применением обычного RC фильтра строить простые …
  • Altium Designer – подготовка документации для производства и сборки печатных платAltium Designer – подготовка документации для производства и сборки печатных плат
    Views: 3627 В процессе освоения Altium Designer много возникает вопросов по подготовке документации для производства плат, а также для её сборки. Altium Designer позволяет сделать все требуемые документы, хотя скажем …
  • Универсальный терморегулятор ch-c3000Универсальный терморегулятор ch-c3000
    Views: 2962 Терморегулятор ch-c3000 предназначен для управления системами регулирования температуры в пределах от – (минус) 55 до + 125 С. Регулятор может использоваться как в системах отопления, так и в …
  • PIC18F25K42 – v. A001 – выявленные баги.PIC18F25K42 – v. A001 – выявленные баги.
    Views: 593 Модуль I2C Не работает при использовании в стандартной конфигурации MCC. Требует особой нестандартной конфигурации и управления для нормальной работы. Обойти Обход проблемы возможен библиотека см статью. Модуль ADC2 На …
  • Ссылки на интересные источникиСсылки на интересные источники
    Views: 821 Сбор 3D моделей от André L’Hérault конденсаторы, резисторы, индуктивности dropbox IPC-SM-782 Surface Mount Design and Land Pattern Standard Видео уроки по Altium designer Alexey Sabunin https://www.youtube.com/channel/UCG7N5CqXpyK8nQjr1EmMgng Сергей Булавинов https://www.youtube.com/channel/UCISAMXRnN_Qw9UTjUwZI1Jw Robert Feranec https://www.youtube.com/user/matarofe …
  • Проект с использованием MCC часть 12-2Проект с использованием MCC часть 12-2
    Views: 1012 Настало время для изучения шины I2C. Изучать будем на примере работы с индикатором RET012864E. Что изменили со старой схемы: В прошлой теме я затупил и не добавил подтягивающие резисторы …
  • Гаджеты для домашней автоматики – Емкостной сенсорГаджеты для домашней автоматики – Емкостной сенсор
    Views: 1587 Управление светодиодным освещением – Сенсор емкостной. Данный гаджет предназначен для управления освещением где необходимо включением освещение сенсорным прикосновением. Датчик позволяет управлять светодиодной нагрузкой в виде модулей или светодиодных лент …
  • CLUBBEST-50-LightCLUBBEST-50-Light
    Views: 237 CLUBBEST-50-LIGHT   Зміст Короткий опис проекту. 1 Опис схемотехніки візуалізатора музики. 2 Аудіо вхід. 3 MCU. 4 Цифровий вихід. 5 Схема живлення MCU. 6 Складання пристрою. 7 Список …



Поделись этим!

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.

Продолжайте читать

НазадДалее