Готовлюсь писать «GUI»

Наша служба и опасна и трудна,
И на первый взгляд, как будто не видна.

Это как раз про написание кода, который пока не производит видимых эффектов.

Я тут переконфигурил макетку для работы с дисплеем. Теперь кнопки — это не музыкальные клавиши, а управляющие кнопки с панели управления (хорошо, что это очень легко перенастраивается в прошивке). Зато теперь у меня есть кнопки, которые можно назначить на «вверх», «вниз», «вправо», «влево» и ещё 2 кнопки, которые будут в разное время выполнять разные роли.

И заодно немного причесал ранее написанное. Оформил в полноценную нормальную ардуино-библиотеку класс, работающий со светодиодами. Вытащил в отдельные .h/.cpp файлы класс с очередью событий приложения.

И доработал класс «кнопки/клавиши», чтобы можно было для управляющих кнопок включать режим «быстрого автоповтора», как на обычной компьютерной клавиатуре. Т.е. при удерживании кнопки (но не сразу, а через 0.7 с после начала удерживания), кнопка автоматически генерирует события «нажато»/»отпущено» с частотой примерно по 20 событий в секунду. Самое то, что нужно, для настройки численных параметров с помощью стрелок.

И я немного офигел, когда увидел, что библиотека для работы с экраном сожрала аж целый килобайт с лишним ОЗУ (под буфер обмена с дисплеем). Для моих нужд мне осталось всего порядка 300 байт теперь. Ну, по идее, этого должно хватить, учитывая, что я всё-всё, что можно размещаю во флеш-памяти (см. ключевое слово PROGMEM). Экран нужен, и русские буквы на нём тоже нужны; придётся терпеть.

По плану, следующий шаг — это утащить во флэш-память кое-какие константы для клавиатурного класса. Планирую освободить в ОЗУ порядка 20 байт, может чуть больше.

Рис. 1

Добавить комментарий