8(495) 662-59-14

Главная / Форум
  • РУС / ENG
(495) 662-59-14 Многоканальный телефон Не дозвонились?
Форумы >>ЖК индикаторы >>ЖК-Индикатор MT-12864B-3FL
ЖК-Индикатор MT-12864B-3FL

ambit.pro
Пользователи

Сообщений: 2
Регистрация: 07.04.2021

Добрый день ЖК-Индикатор MT-12864B-3FL при запуске, наблюдается переворот изображения с последующим зависанием. Скажите в чем может быть причина и возможные пути её разрешения ?

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

Петухов_Дмитрий
Пользователи

Сообщений: 1383
Регистрация: 25.11.2009

Здравствуйте.
В управляющей программе.
Искать в ней некорректность.

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

domhathair
Пользователи

Сообщений: 2
Регистрация: 24.11.2021

Привет!
Я вчера дописал свою библиотеку для работы с данным семейством дисплеев. Надеюсь она сможет быть полезна для Вас.
https://github.com/domhathair/melt_MT-12864B

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

Петухов_Дмитрий
Пользователи

Сообщений: 1383
Регистрация: 25.11.2009

Я вчера дописал свою библиотеку для работы с данным семейством дисплеев. Надеюсь она сможет быть полезна для Вас https://github.com/domhathair/melt_MT-12864BГлянул её. В принципе неплоха. Радует наличие рисования линий и окружностей (но не эллипсов, хотя принцип же один), наличие вывода текста (жаль что одним шрифтом). Также радует три режима рисования.

Не радует больше:
- отсутствие документации, типа разбирайтесь по исходному коду сами;
- тормоза при массовых операциях (понятно что это в угоду простоте и универсальности, но);
- не указано в какой кодировке принимает русский текст (сначала подумал про Win1251, потом заметил непонятный мухлёж с кодами 0xD0 и 0xD1, похоже на UTF8, комментарий про CYRILLIC не спасает, текстовые строки могут быть и не только из среды программирования);
- требование килобайта памяти (далеко не всегда он есть в наличии и вообще нужен, бывает можно рисовать прямо в индикатор, но уже конечно не где и что угодно);
- использование плавающей точки для линий;
- не вполне понятные константы в рисовании окружности;
- не везде есть проверка корректности переданных параметров;
- не освобождает SPI при отсутствии обращений к индикатору;
- требует динамическую память (heap) для вывода текста.

Вообще впечатление что последние процедуры в lcd.c недоработаны, вроде и рабочие, но не до конца. Например вывод текста: глючит если последний символ в строке 0xD0 или 0xD1 в кодировке UTF8, нет переноса по строкам; глюк если память не выделилась; тормозит из-за вывода LCD_Bitmap всегда всех 64 точек по вертикали когда достаточно максимум 16 (и соответственно 32-х битные операции в ней не нужны, достаточно 16-ти битных, для 8-ми битных МК это важно), плюс тормоза из-за внутреннего цикла по y вместо x в ней же.
LCD_Screen(CLEAR) стоило бы добавить сразу в Init_LCD() (и лучше даже до команды Display ON), иначе возможно расхождение между индикатором и SCREEN.

Вердикт: как пример (заготовка) работы с индикатором пойдёт, но почти наверняка потребует "доработки напильником по месту". Пользоваться же как готовым законченным модулем невозможно. Но в части работы с индикатором явных огрехов не заметил.

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

domhathair
Пользователи

Сообщений: 2
Регистрация: 24.11.2021

Спасибо за подробный комментарий! Постараюсь учесть данные замечания.

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение
Сейчас на форуме (гостей: 4, пользователей: 0 , из них : 0 )