eddy_em: (Костерок)
eddy_em ([personal profile] eddy_em) wrote2016-01-20 05:30 pm
Entry tags:

LCD-экранчик от Nokia 5110 и STM8

Я уже давно набросал основной код для работы с этим экранчиком и даже составил шрифт для любимой кодировки, но никак руки не доходили это собрать воедино. Вот, за вчерашний вечер и сегодняшний день соединил. Видео на тытрубе:


Как обычно, код в репозитории STM8_samples.
Пока что реализован только текстовый интерфейс: все (кроме командных символов), что печатается в терминале, отображается на экране LCD. Каждый раз, как строка на экранчике переносится, в терминале тоже отображается '\n'.
Шрифт содержит полную таблицу символов КОИ8-Р. Пока что есть проблемы с отсылкой спецсимволов в терминал, но, наверное, не стоит заморачиваться, т.к. такой функционал, как просто отображение на экранчике текста с терминала, не интересен.

Еще надо будет протестировать графику и добавить пару алгоритмов Брезенхема (для линий и для окружностей).
Кроме того, при необходимости можно будет "кастрировать" библиотечку под STM8S003 и другие мелкоконтроллеры, не имеющие достаточно оперативки (под один только экранный буфер нужно иметь 504Б ОЗУ). Но в этом случае, понятно, сдвигать строчки вверх не получится: только полностью очищать экран после заполнения (если, конечно, у контроллера PCD8544 не появилась возможность прокручивать изображение своими силами).

Следующий шаг — тестирование этой библиотечки для STM32. Потом еще попробую прикрутить экранчик с тачскрином — это мало того, что интересно, так еще и поможет разрабатывать интерактивные железяки, для операций с которыми не придется искать компьютер. К тому же IRBIS'у можно будет прикрутить сенсорный экран, чтобы в лабораторных условиях при всяких юстировках обойтись без подключения к компьютеру. Еще один плюс — отображение температуры узлов (скажем, начнет мигать, если температура на светоприемнике начала расти, или если стало подниматься давление в криостате).

P.S. Кстати, опять сегодня убил несколько часов в непонятках: экранчик никак не хотел отзываться. Пришлось разобрать. Оказалось, что контактирует с платой он посредством резиновой прокладки с проводниками. И металлический корпус был установлен криво, поэтому дорожки замыкали. Благо, не сгорел мелкоконтроллер. Вот поэтому-то экранчик на видео обмотан скотчем. О, чудеса китайского ардуиноклепательства!

[identity profile] hrun-morjov.livejournal.com 2016-01-20 02:42 pm (UTC)(link)
(под один только экранный буфер нужно иметь 504кБ ОЗУ)
504 байта?

[identity profile] eddy-em.livejournal.com 2016-01-20 02:55 pm (UTC)(link)
Да, очепятался.

[identity profile] 32bit-me.livejournal.com 2016-01-20 02:49 pm (UTC)(link)
Прикольно.

[identity profile] eddy-em.livejournal.com 2016-01-20 02:58 pm (UTC)(link)
Угу. На STM32 можно будет попробовать простую реализацию командного процессора сделать, чтобы понимал что-нибудь вроде
echo "Привет"
cls
circle(30,30,20)
line(0,0,84,48)

Но лучше сразу начать с более приличных экранчиков: все-таки, на этой мелочи и с текстом-то особо не разгонишься, куда уж графику…

[identity profile] 32bit-me.livejournal.com 2016-01-20 03:15 pm (UTC)(link)
От задач, конечно, зависит.
Я использовал экраны 128*64 и писал свою библиотеку графического интерфейса.