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

Views: 1138


В настоящее время без визуализации информации уже не интересно. Поэтому научимся выводить информацию на дисплей. Для это возьмет простенький 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…


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


  • Модуль CAN в микроконтроллерах PIC18Модуль CAN в микроконтроллерах PIC18
    Views: 6003 Введение   CAN последовательный интерфейс связи, который эффективно поддерживает распределенное управление в реальном масштабе времени с высокой помехозащищенностью. Протокол связи полностью определен Robert Bosch GmbH, в спецификации требований …
  • Акриловый корпус для платы ch-4000Акриловый корпус для платы ch-4000
    Views: 872 Плата ch-4000 подходит для монтажа в корпуса на дин рейку, но для домашней автоматики необходимо что-то другое, поэтому был разработан корпус из акрила который позволит создавать настольные и настенные устройства. Корпус …
  • Проект с использованием MCC часть 09Проект с использованием MCC часть 09
    Views: 1071   Эта часть будет посвящена созданию практического проекта управления освещение. Тех задание: Два выхода управления ШИМ – светодиодным освещением. Две кнопки управления, каждая кнопка управляет, своим каналом, логика самая …
  • MPLAB X IDE – управление проектамиMPLAB X IDE – управление проектами
    Views: 1211 Среда  MPLAB X IDE позволяет оперативно работать с несколькими проектами, например, если у вас в работе несколько проектов: Для того чтобы переключиться достаточно выбрать другой проект: Для выбора …
  • LCD драйвер – UC1601sLCD драйвер – UC1601s
    Views: 1836 http://svetomuzyka.narod.ru/project/UC1601s.html Читайте обновление на http://catcatcat.d-lan.dp.ua/?page_id=178 В данный момент можно приобрести в ООО “Гамма” несколько типов индикаторов на драйвере UC1601s. RDX0048-GC, RDX0077-GS, RDX0154-GC и RDX0120-GC выполнены по технологии COG.
  • Audio-bluetooth modules BK8000L (noname)Audio-bluetooth modules BK8000L (noname)
    Views: 901 Еще один вариант, так сказать недоразумения Audio-bluetooth modules BK8000L (noname). Его отличительной маркировкой служат два отверстия в плате и надпись R2. Отличают его от модулей на чипе BK8000L, …
  • Audio-bluetooth modules F-6188 (BK8000L)Audio-bluetooth modules F-6188 (BK8000L)
    Views: 2500Следующий модуль на чипе BK8000L. Заводское обозначение F-6188 также основным производителем не выпускается и отдан на тиражирование. с нижней стороны имеет маркировку В этом варианте мне попалась вроде полноценная …
  • Acquaintance with audio-bluetooth modules F-6888 (BK3254).Acquaintance with audio-bluetooth modules F-6888 (BK3254).
    Views: 2436 Для проектов появилось необходимость познакомиться с недорогими модулями китайского производства, которые можно приобрести у нас в Украине и у китацев, на алиэкспрессе. Так как меня интересует не просто, …
  • AD9833 – Programmable Waveform GeneratorAD9833 – Programmable Waveform Generator
    Views: 3085 Простой генератор звуковых частот на AD9833. Для тестирования БПФ в светомузыке мне нужен был генератор звуковых частот. Я  использовал советский Г3-112, но он себя давно изжил.  Все думал купить …
  • Защита датчиков температуры DS18B20 от статического электричестваЗащита датчиков температуры DS18B20 от статического электричества
    Views: 2010 Статья перепечатана с сайта http://svetomuzyka.narod.ru При удалении датчика на большие расстояния возникает опасность наведения импульсов высокого напряжения на кабель, который соединяет датчик с контролером. Если не принимать меры защиты, …



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

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.

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

НазадДалее