Страница 1 из 1
Графический дисплей ks0108 12864
Добавлено: Пн июл 15, 2019 22:50:28
CAT86
wg12864A ks0108 очень медленно обновляется (1-2 раза в секунду)
Atmega2560 16Mhz
CVAVR стандартная библиотека
Код: Выделить всё
glcd_clear();
glcd_outtextxyf(12,0,"M1") ;
sprintf(lcd_buf,"dir=%u", direction1);
glcd_outtextxy(1,6,lcd_buf);
sprintf(lcd_buf,"pau=%u", pau_1);
glcd_outtextxy(1,12,lcd_buf);
sprintf(lcd_buf,"trn=%u", turns_1);
glcd_outtextxy(1,18,lcd_buf);
sprintf(lcd_buf,"spd=%u", speed_1);
glcd_outtextxy(1,24,lcd_buf);
Скажите где копать?

Re: Графический дисплей ks0108 12864
Добавлено: Чт июл 18, 2019 23:27:59
Аlex
Очевидно же - в библиотеке

Re: Графический дисплей ks0108 12864
Добавлено: Пт июл 19, 2019 10:29:24
ARV
не знаю, где копать, но очищать экран целиком, чтобы всякий раз выводить на 80% прежние данные - плоховатая идея. все "константы" на дисплее (типа "dir=" и т.п.) можно вывести 1 раз, а затем только обновлять небольшие "прямоугольники" в нужных местах, выводя числа.
если строку с представлением числа сформировать с "лидирующими" или "завершающими" пробелами, чтобы количество позиций всегда было неизменно независимо от количества цифр в числе, то обновляемую прямоугольную область и очищать отдельно не придется - пробелы сами затрут предыдущее
Re: Графический дисплей ks0108 12864
Добавлено: Пн авг 12, 2019 22:11:24
CAT86
Скажите пожалуйста, дисплей ks0108 12864 по 8-ми битной шине очень медленно отрисовуется после команды "glcd_clear()"
если дисплей 20х4 по 4-х битной шине отрисовуется очень быстро, без промигиваний.
Кто может объяснить, в чем фишка?

Re: Графический дисплей ks0108 12864
Добавлено: Пн авг 12, 2019 23:09:57
VALNER
[uquote="CAT86",url="/forum/viewtopic.php?p=3681728#p3681728"]Скажите пожалуйста, дисплей ks0108 12864 по 8-ми битной шине очень медленно отрисовуется после команды "glcd_clear()"
если дисплей 20х4 по 4-х битной шине отрисовуется очень быстро, без промигиваний.
Кто может объяснить, в чем фишка?

[/uquote]
На сколько я понимаю, тот что 128х64 работает в графическом режиме. То есть для того что бы вывести на нем какой то символ (возьмем к примеру 7х5 аналогичный шрифту с 20х4 или 16х2 дисплеев) понадобится отправить полностью рисунок этого символа (5 байт и это в найлучшем случае). В 20х4 знакосинтезатор встроенный и там что бы отобразить символ нужно послать всего лишь его номер (1 байт). В результате этого, количество данных нужных для вивода символа на дисплее 20х4 меньше.
Хотя, проблема может быть и в програмной части. По крайней мере у меня дисплей 102х96 (вроде бы) заполняется достаточно быстро, а он на СПИ сидит.
Надеюсь понятно.
Re: Графический дисплей ks0108 12864
Добавлено: Пн авг 12, 2019 23:45:00
Аlex
[uquote="CAT86",url="/forum/viewtopic.php?p=3681728#p3681728"]Кто может объяснить, в чем фишка?

[/uquote]
Опять, как и в первом посте, - прибежал, пёрнул и убежал. А людям гадай откуда запашок идёт... Когда уже научимся вопросы нормально задавать ?
Фишка в недопонимании процессов в целом. Где код прорисовки ? Где объяснения того, что должно БЫСТРО прорисовываться ? И что значит "медленно", это сколько "в граммах" ?
PS: И слова "отрисовуется" нет в Русском языке !

Re: Графический дисплей ks0108 12864
Добавлено: Вт авг 13, 2019 08:45:54
CAT86
Ну вот на пример:
Код: Выделить всё
while
{
glcd_clear();
glcd_outtextxyf(12,0,"M1") ;
sprintf(lcd_buf,"dir=%u", direction1);
glcd_outtextxy(1,6,lcd_buf);
};
на дисплее мигает:
dir=%u
даже если вывести переменную часов или температуры, тоже будет мигать...
Re: Графический дисплей ks0108 12864
Добавлено: Вт авг 13, 2019 09:20:50
Аlex
Ответный вопрос - а почему оно НЕ должно мигать ?
Добавлено after 51 second:
[uquote="Аlex",url="/forum/viewtopic.php?p=3681758#p3681758"]Когда уже научимся вопросы нормально задавать ?
Где код прорисовки ? Где объяснения того, что должно БЫСТРО прорисовываться ? И что значит "медленно", это сколько "в граммах" ?[/uquote] ?
Re: Графический дисплей ks0108 12864
Добавлено: Ср авг 14, 2019 06:42:00
ARV
CAT86 писал(а):на дисплее мигает: dir=%u
говорил же:
ARV писал(а):очищать экран целиком, чтобы всякий раз выводить на 80% прежние данные - плоховатая идея. все "константы" на дисплее (типа "dir=" и т.п.) можно вывести 1 раз, а затем только обновлять небольшие "прямоугольники" в нужных местах, выводя числа.
рекомендую читать сообщения, прежде чем задавать повторно те же вопросы