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

Просмотров: 812


В настоящее время без визуализации информации уже не интересно. Поэтому научимся выводить информацию на дисплей. Для это возьмет простенький 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 часть 13Проект с использованием MCC часть 13
    Просмотров: 916 Так как используя MCC мы можем его использовать со своими библиотеками, поэтому настало время и свое создать. Для начала откроем наш заголовочный файл в нем очень много букв: По …
  • ch-4060 – регулятор температуры и влажности на датчике DHT11/DHT22/AM2302ch-4060 – регулятор температуры и влажности на датчике DHT11/DHT22/AM2302
    Просмотров: 2290 На плате ch-4000 очень легко собрать устройство регулятора температуры и влажности. Датчик DHT11  самый недорогой вариант для создания такого устройства, правда точность его не велика, но для бытовых устройств …
  • Система AT команд версии V2.0 для ESP8266 и ESP32Система AT команд версии V2.0 для ESP8266 и ESP32
    Просмотров: 6300 Появление нового модуля на базе ESP32 заставило систематизировать систему AT команд, а так же систему обновления и для модулей на базе ESP8266. Начиная с версии v2.0 в ESP8266 …
  • Altium Designer my setup system and project structureAltium Designer my setup system and project structure
    Просмотров: 64   Тут хочу поделиться как я настраиваю Altium Designer и как я использую файлы DXPPreferences.DXPPrf для быстрой конфигурации и получения всех необходимых инструментов для работы, а также для эффективного …
  • УКВ – радиоприем, часть 2УКВ – радиоприем, часть 2
    Просмотров: 5896 Пришло свободное время решил вторую часть проекта реализовать (правда есть мысль и третью с использование цветного OLED и функцией ch-светомузыки, но это только задумка… Для понимания функций интегрального …
  • Проект с использованием MCC часть 11Проект с использованием MCC часть 11
    Просмотров: 743 Можно несколько облагородить программу вынести наши процедуры обработки нажатия кнопок в отдельные функции. Но вы должны понимать, что это хоть и не значительно, но будет тормозить общую скорость …
  • Проект с использованием MCC часть 14Проект с использованием MCC часть 14
    Просмотров: 709 С выводом данных на дисплей мы справились (но могу сразу сказать библиотеку графики к этой статьи пришлось доработать, поэтому в этом проекте она обновлена). У нас на текущем …
  • MAX7219/21 и 8х8 LED дисплеиMAX7219/21 и 8х8 LED дисплеи
    Просмотров: 842 MAX7219, MAX7221 предназначены для вывода информации на 8 разрядов семисегментного индикатора, но на нем легко организовать вывод на светодиодные индикаторы 8х8. продолжение следует…. Это может быть интересно Метки:MAX7219, MAX7221
  • CAN – Controller Area NetworkCAN – Controller Area Network
    Просмотров: 970 Controller Area Network (CAN) первоначально был создан немецким поставщиком автомобильных систем Робертом Бош в середины 1980-х для автомобильной промышленности как метод для обеспечения возможности надежной последовательной связи. Целью было сделать автомобили более надежными, …
  • Четырех канальный терморегулятор ch-4000Четырех канальный терморегулятор ch-4000
    Просмотров: 2985  Четыре независимых канала регулирования температуры, одновременно можно подключить 16 датчиков температуры DS18B20 с удалением до трехсот метров. Можно для регулировки выбрать любой датчик, подключенный к устройству. Каждый канал может работать …



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

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.