Консоль для Doom на ESP32 своими руками с использованием драйвера MCP23017 для кнопок от UncleRus
В ожидании Роковые часы Пришла плата для старого проекта.
Плата содержит внешние MCP23017 и CS4344 и многое другое.
Для кнопок используется расширитель портов MCP23017, подключаемый по I2C. Для него есть драйвер, который вы можете получить ДядяРусь .
Была предпринята попытка запустить внешний АЦП CS4344.
Дум от Espressif
После скачивания порта Doom мне пришлось немного повозиться, чтобы его собрать.В итоге всё собралось и залилось на ESP32, но.
словил вылет при старте.
Подобное обсуждение проблемы я видел на гитхабе проекта Issue:
Автор порта предложил сделать
Вероятно, вам придется использовать опцию malloc(), а также зарезервировать немного памяти для DMA. Я посмотрю, смогу ли я получить эту компиляцию на мастере и обновить sdkconfig, когда у меня будет время.В общем, недолго думая, я заменил все портированные функции распределения памяти на malloc().
Демо-версия началась.
Впереди у меня было подключение кнопок
MCP23017 Расширитель GPIO
MCP23017 Имея большие планы по расширению функционала за счет портов контроллера, я решил немного сэкономить на портах ввода-вывода самого микроконтроллера, установив MCP23017. Это простой расширитель с доступом к сигналам ввода/вывода через интерфейс I2C. Драйвер не я изобретал, я просто взял его из ДядяРус .
Пять кнопок используют джойстик для навигации.
Пара кнопок для съемки и выбора меню.
На самом деле этого мало, нужно еще открывать двери и двигаться влево и вправо, не поворачиваясь, то есть как краб.
Контакты внутри MCP23017 подключены к VDD. Контакт замыкается на землю.
Очень здорово, что внутри микросхемы есть подтягивающие резисторы.
Вы также можете повозиться с прерываниями от MCP23017. У него по два выхода на каждый порт INTA и INTB, но об этом в другой раз.
Полный список команд
Теги: #Разработка игр #Программирование микроконтроллеров #Производство и разработка электроники #Сделай сам или Сделай сам #Проектирование схем #Программирование esp32 doomstatic const JsKeyMap keymap[]={
-
Dotnext 2019 Питер: Краткий Отчет
19 Oct, 24 -
Публикуем Приложения Citrix В Web
19 Oct, 24 -
Icq/Mrim/Jabber/Вконтакте Шлюз
19 Oct, 24 -
Codegear Delphi Для Php
19 Oct, 24