Последний раз редактировалось Eltaron; 29.02.2020 в 14:04.
У проекта настолько странные тайминги всего, что я не очень понимаю, как он вообще работает.
1. Крутим не глядя проц на 50 тыщ тактов.
2. Смотрим, нет ли прерывания. Если есть - пересылаем его процессору.
3. Повторяем п. 1
В процессе выполнения пункта 1 крутим ещё пустые циклы на глазок, чтобы не работать уж слишком быстро
А в фоне по прерыванию работает отрисовка экрана с частотой... 10 кадров в секунду
Но вообще экран может общаться по SPI на огромных частотах - стабильно запустился у меня на 120 МГц, да и на 160 Мгц лишь артифачит при касаниях.
При условии, что занимаемся только экраном, нам потребовалась частота бы всего в 320 * 240 точек * 16 бит * 50 кадров = 61 мегагерц
Понятно, что накладные расходы, проц, клавиатура etc съедят ещё столько же. Но наших 160 МГц должно быть с запасом.
Последний раз редактировалось Eltaron; 02.03.2020 в 14:43.
Dotoro(07.03.2020)
Перепилил главный цикл и прерывания, добился 50 Герц. Но пиксельной точности всё же не будет: SPI у ESP8266 может отсылать сразу по 16 32-битных слов, в них влезают 32 точки. Поэтому вместо обычного спектрумского чередования один такт CPU - одна точка экрана, нам приходится чередовать 32 точки и 32 такта процессора. Самые злые мультиколоры в демах уплывут. Но о демах ли нам думать с 48 килобайтами ОЗУ?А сделанные на "нирване" игры вроде бы должны работать.
Dotoro(07.03.2020)
Убил неделю, добился 50 Герц. Точнее, мне казалось, что добился. А потом заметил, что при разгоне c 80 МГц до 160 МГц частоты системных таймеров почему-то не удваиваются
А с правильными делителями снова в один фрейм отрисовка не укладывается. Копаем дальше.
Архитектура у ESP8266 такая, что у него случаются непредсказуемые тормоза из-за того, что код перед исполнением должен быть скопирован в кэш инструкций. Причем, эти тормоза прозрачны для программиста, и отлавливать их жутко муторно.
Dotoro(12.03.2020)
Что только эти студенты не придумают, лишь бы не доплатить 100 руб за ESP32![]()
Мои игрушки: PowerbookG4 / MacMiniG4 / MacMini i5 / Amiga1260 / Commodore64 / Atari65XE / MSX1 SVI-728 / MSX2 КУВТ2 / MiST / MiSTer / Profi+ / KarabasPro / Speccy2010 / Aspect128 / ZX-UNO VGA 2M / PS3 / PS4Pro+PSVR / PSP / PS Vita / GBC / LDK Game / RG350M / iPhone / iPad / Raspberry Pi (0/3B+/4B/5)
MorphOS / AmigaOS / MacOS / Linux
SoftLight(12.03.2020)
Во, на ESP32 надо делать вот на такой платформе: https://aliexpress.com/item/4000527495064.html
Экран 160x80, должно быть относительно читаемо. Кемпстон замаппить на акселерометр, клаву прицепить как-нибудь через wi-fi
Тогда хоть какая-то интересность появляется.
Да ну, разрешение же никуда не годится. Есп32 должна тащить полноценный пиксель-в-пиксель экран с бордером.
Мои игрушки: PowerbookG4 / MacMiniG4 / MacMini i5 / Amiga1260 / Commodore64 / Atari65XE / MSX1 SVI-728 / MSX2 КУВТ2 / MiST / MiSTer / Profi+ / KarabasPro / Speccy2010 / Aspect128 / ZX-UNO VGA 2M / PS3 / PS4Pro+PSVR / PSP / PS Vita / GBC / LDK Game / RG350M / iPhone / iPad / Raspberry Pi (0/3B+/4B/5)
MorphOS / AmigaOS / MacOS / Linux
порты можно дергать ?
vk.com\selevo
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)