CodeVisionAVR 3.12 Advanced и китайский дисплей на ST7565R
- Сообщения: 63
- Зарегистрирован: Пн дек 29, 2014 21:29:32
Всем здоровья! Удалось заставить работать китайский дисплейчик GMG12864-06D v2.0 c Алиэкспресс с мк ATmega328P c помощью встроенной библиотеки CodeVisionAVR. Кому интересно, расскажу как. Но этот дисплей сожрал 1024 байта RAM для своего буфера, и для основной программы совсем мало места осталось, не влазит.. Хотел посмотреть файл библиотеки glcd_st7565.lib может там можно уменьшить размер буфера, а файл походу закодирован, матюки какие-то.. И так большинство библиотечных файлов. А вот например lcd4x40.lib, открывается в текстовом редакторе норм, видно код на С. И в CodeVision открывается, всё ок. Может, библиотеки для третьей версии CodeVision закодировали? Или я хернёй занимаюсь и уменьшить размер буфера для этого дисплея не получится? Кто работал с таким?
- Реклама
- Сообщения: 549
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Combatos, 7565 - тупой как валенок.
Монохромник 128х64 пикселя. всего 8192 пикселей. 1 бит на пиксель. Итого видеопамять дисплея 1 кб.
Соответственно, нужно выводить на него сразу 1 байт - 8 пикселей.
А минус таких дисплеев - зачастую нельзя прочитать из дисплея содержимое его видеопамяти - не все контроллеры это позволяют.
И что б не было таких плясок с бубном - обычно делается буфер в ОЗУ контроллера, в нем всё рисуется, а потом весь буфер (или измененная часть) выплевывается в МК.
При этом видеопамять в этом дисплее организована горизонтальными полосами по 8 пикселей в высоту. Всего таких полос - 8.
Можете попробовать нарисовать свою библиотеку, которая содержит буфер только для 1-2-4 полос. И рисовать-выводить картинку по частям, проецируя буфер на разные области экрана.
Система команд дисплея (поделился один из форумчан)
Монохромник 128х64 пикселя. всего 8192 пикселей. 1 бит на пиксель. Итого видеопамять дисплея 1 кб.
Соответственно, нужно выводить на него сразу 1 байт - 8 пикселей.
А минус таких дисплеев - зачастую нельзя прочитать из дисплея содержимое его видеопамяти - не все контроллеры это позволяют.
И что б не было таких плясок с бубном - обычно делается буфер в ОЗУ контроллера, в нем всё рисуется, а потом весь буфер (или измененная часть) выплевывается в МК.
При этом видеопамять в этом дисплее организована горизонтальными полосами по 8 пикселей в высоту. Всего таких полос - 8.
Можете попробовать нарисовать свою библиотеку, которая содержит буфер только для 1-2-4 полос. И рисовать-выводить картинку по частям, проецируя буфер на разные области экрана.
Система команд дисплея (поделился один из форумчан)
Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
Я не ИИ, поэтому могу ошибаться.
- Сообщения: 535
- Зарегистрирован: Вт фев 09, 2010 17:52:26
И какой смысл читать его память?Just_Fluffy писал(а):А минус таких дисплеев - зачастую нельзя прочитать из дисплея содержимое его видеопамяти - не все контроллеры это позволяют.
Она что может сама поменяться?
- Сообщения: 549
- Зарегистрирован: Ср июн 29, 2022 16:25:45
codenamehawk, а как зажечь на дисплее один пиксель, НЕ ТРОГАЯ 7 соседних?
Либо прочитать видеопамять, либо иметь копию видеопамяти в ОЗУ МК.
Эта копия - 1 кб.
ТСу не хватает ОЗУ в МК.
Чтение-модификация-запись позволит вообще не выделять буфер в ОЗУ. Но далеко не все дисплеи так могут.
Либо прочитать видеопамять, либо иметь копию видеопамяти в ОЗУ МК.
Эта копия - 1 кб.
ТСу не хватает ОЗУ в МК.
Чтение-модификация-запись позволит вообще не выделять буфер в ОЗУ. Но далеко не все дисплеи так могут.
Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
Я не ИИ, поэтому могу ошибаться.
- Сообщения: 535
- Зарегистрирован: Вт фев 09, 2010 17:52:26
Выведите все восемь сразу, прежние семь(вернее восемь) вы выводили, значит имеете представление, что там хранится.Just_Fluffy писал(а):а как зажечь на дисплее один пиксель, НЕ ТРОГАЯ 7 соседних?
Иногда проще перерисовать весь дисплей(или заданный прямоугольник) при помощи функций типа нарисовать линию, квадрат, текст и.т.п., чем создавать большой буфер.
- Реклама
- Сообщения: 549
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Что бы иметь представление, что у меня раньше было в 7 остальных битах - нужно их помнить. Что автоматом возвращает нас к необходимости буфера хотя бы для части экрана. Я об этом писала, почитайте выше.
Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
Я не ИИ, поэтому могу ошибаться.
- Сообщения: 120
- Зарегистрирован: Пт мар 19, 2021 08:58:45
Тоже возник вопрос по данному дисплею.питание дисплея и мк 5 вольт
По даташиту в режиме Sleep mode потребление должно быть не более 4 мкА,у меня меньше 3 миллиампер не получается,код взял отсюда https://github.com/rdagger/Pi-ST7565/bl ... /st7565.py
def sleep(self):
"""Put ST7565 display in sleep mode"""
self.send_command([self.CMD_SET_STATIC_OFF])
self.send_command([self.CMD_DISPLAY_OFF])
self.send_command([self.CMD_SET_ALLPTS_ON])
Подсветку отключаю,почему так много потребляет-может кто в курсе?
Добавлено after 15 minutes 43 seconds:
Re: CodeVisionAVR 3.12 Advanced и китайский дисплей на ST7565R
И почему то нет стабилизатора на 3,3 вольта на плате дисплея-стоит перемычка,попробую впаять XC6206-3,3
Впаял XC6206,потребление в режиме Sleep стало 2 мА,в режиме stanby менее 100 микроампер...что за фигня....
Разобрался,всем спасибо!
По даташиту в режиме Sleep mode потребление должно быть не более 4 мкА,у меня меньше 3 миллиампер не получается,код взял отсюда https://github.com/rdagger/Pi-ST7565/bl ... /st7565.py
def sleep(self):
"""Put ST7565 display in sleep mode"""
self.send_command([self.CMD_SET_STATIC_OFF])
self.send_command([self.CMD_DISPLAY_OFF])
self.send_command([self.CMD_SET_ALLPTS_ON])
Подсветку отключаю,почему так много потребляет-может кто в курсе?
Добавлено after 15 minutes 43 seconds:
Re: CodeVisionAVR 3.12 Advanced и китайский дисплей на ST7565R
И почему то нет стабилизатора на 3,3 вольта на плате дисплея-стоит перемычка,попробую впаять XC6206-3,3
Впаял XC6206,потребление в режиме Sleep стало 2 мА,в режиме stanby менее 100 микроампер...что за фигня....
Разобрался,всем спасибо!


