Обсуждаем контроллеры компании Atmel.
Ответить

CodeVisionAVR 3.12 Advanced и китайский дисплей на ST7565R

Ср сен 14, 2022 13:59:50

Всем здоровья! Удалось заставить работать китайский дисплейчик GMG12864-06D v2.0 c Алиэкспресс с мк ATmega328P c помощью встроенной библиотеки CodeVisionAVR. Кому интересно, расскажу как. Но этот дисплей сожрал 1024 байта RAM для своего буфера, и для основной программы совсем мало места осталось, не влазит.. Хотел посмотреть файл библиотеки glcd_st7565.lib может там можно уменьшить размер буфера, а файл походу закодирован, матюки какие-то.. И так большинство библиотечных файлов. А вот например lcd4x40.lib, открывается в текстовом редакторе норм, видно код на С. И в CodeVision открывается, всё ок. Может, библиотеки для третьей версии CodeVision закодировали? Или я хернёй занимаюсь и уменьшить размер буфера для этого дисплея не получится? Кто работал с таким?

Re: CodeVisionAVR 3.12 Advanced и китайский дисплей на ST756

Сб сен 17, 2022 11:05:40

Combatos, 7565 - тупой как валенок.
Монохромник 128х64 пикселя. всего 8192 пикселей. 1 бит на пиксель. Итого видеопамять дисплея 1 кб.
Соответственно, нужно выводить на него сразу 1 байт - 8 пикселей.
А минус таких дисплеев - зачастую нельзя прочитать из дисплея содержимое его видеопамяти - не все контроллеры это позволяют.
И что б не было таких плясок с бубном - обычно делается буфер в ОЗУ контроллера, в нем всё рисуется, а потом весь буфер (или измененная часть) выплевывается в МК.

При этом видеопамять в этом дисплее организована горизонтальными полосами по 8 пикселей в высоту. Всего таких полос - 8.
Можете попробовать нарисовать свою библиотеку, которая содержит буфер только для 1-2-4 полос. И рисовать-выводить картинку по частям, проецируя буфер на разные области экрана.

Система команд дисплея (поделился один из форумчан)
ST7565 commands.zip
(216.29 KiB) Скачиваний: 162

Re: CodeVisionAVR 3.12 Advanced и китайский дисплей на ST756

Вс сен 18, 2022 12:29:34

Just_Fluffy писал(а):А минус таких дисплеев - зачастую нельзя прочитать из дисплея содержимое его видеопамяти - не все контроллеры это позволяют.

И какой смысл читать его память?
Она что может сама поменяться?

Re: CodeVisionAVR 3.12 Advanced и китайский дисплей на ST756

Вс сен 18, 2022 20:56:51

codenamehawk, а как зажечь на дисплее один пиксель, НЕ ТРОГАЯ 7 соседних?
Либо прочитать видеопамять, либо иметь копию видеопамяти в ОЗУ МК.
Эта копия - 1 кб.
ТСу не хватает ОЗУ в МК.
Чтение-модификация-запись позволит вообще не выделять буфер в ОЗУ. Но далеко не все дисплеи так могут.

Re: CodeVisionAVR 3.12 Advanced и китайский дисплей на ST756

Вс сен 18, 2022 21:05:19

Just_Fluffy писал(а):а как зажечь на дисплее один пиксель, НЕ ТРОГАЯ 7 соседних?

Выведите все восемь сразу, прежние семь(вернее восемь) вы выводили, значит имеете представление, что там хранится.
Иногда проще перерисовать весь дисплей(или заданный прямоугольник) при помощи функций типа нарисовать линию, квадрат, текст и.т.п., чем создавать большой буфер.

Re: CodeVisionAVR 3.12 Advanced и китайский дисплей на ST756

Вс сен 18, 2022 22:32:43

Что бы иметь представление, что у меня раньше было в 7 остальных битах - нужно их помнить. Что автоматом возвращает нас к необходимости буфера хотя бы для части экрана. Я об этом писала, почитайте выше.

Re: CodeVisionAVR 3.12 Advanced и китайский дисплей на ST756

Пн сен 19, 2022 16:27:37

Спокойно работатаю с библиотекой u8g2lib.
Вложения
1663593845651.jpg
(198.76 KiB) Скачиваний: 134

Re: CodeVisionAVR 3.12 Advanced и китайский дисплей на ST756

Вт ноя 22, 2022 10:23:08

Тоже возник вопрос по данному дисплею.питание дисплея и мк 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 микроампер...что за фигня....
Разобрался,всем спасибо!
Ответить