реклама на сайте
подробности

 
 
> ЖКИ BG12864E на ATMEGA2561, Передвижение рисунка между полуэкранами
Slavast
сообщение Dec 9 2010, 09:32
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395



Доброго всем!"
Использую BG12864E на ATMEGA2561 для вывода катящегося мячика. Прокатить плавно мячик с одной стороны полуэкрана в другой не составило труда - с задержкой выводим массив байтов на экран и сдвигаем по горизонтали. Но вот прокатить этот шарик между полуэкранами - задача, т.к. как только он заезжает за правый край полуэкрана, он тут же появляется в его начале. Переключая полуэкраны нельзя добиться плавного заезда, т.к. объект во всю свою длину перескакивает на второй полуэкран и получается резкий рывок. До сих пор не могу понять как это можно сделать. Конечная цель - чтоб бильярдный мячик бегал по экрану, отталкиваясь от его краев.
Поделитесь идеей как это можно сделать?
Заранее, спасибо!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Dec 9 2010, 10:29
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Сдвигайте не на экране, а внутри МК, в буферной памяти экрана. Если он (буфер экрана) у вас конечно имеется laughing.gif
Go to the top of the page
 
+Quote Post
Slavast
сообщение Dec 9 2010, 11:30
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395



Цитата(rezident @ Dec 9 2010, 14:29) *
Сдвигайте не на экране, а внутри МК, в буферной памяти экрана. Если он (буфер экрана) у вас конечно имеется laughing.gif


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

Цитата(011119xx @ Dec 9 2010, 14:42) *
Не совсем понятен этот момент. Может можно фото показать или видео?


Т.к. фотика под рукой нет, изобразил схематический 2 расположенных друг возле друга полуэкрана и шарик, бегающий по ним. DOC1 - это то, что я хочу.
DOC2 и DOC3 - это то 2 варианта, которые сейчас получаются.
Прикрепленные файлы
Прикрепленный файл  Doc1.doc ( 338 килобайт ) Кол-во скачиваний: 50
Прикрепленный файл  Doc2.doc ( 337 килобайт ) Кол-во скачиваний: 39
Прикрепленный файл  Doc3.doc ( 388 килобайт ) Кол-во скачиваний: 34
 
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 9 2010, 17:19
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Slavast @ Dec 9 2010, 16:30) *
Я сдвигаю следующим образом - вывожу массив байтов нашего рисунка начиная со след адреса строки, предварительно стерев предыдущую картинку.
Что вы имеете под понятием буфер?
Под буфером я имею в виду буфер в ОЗУ размером такой же как полный экран дисплея. Изображение формируется в этом буфере. Потом содержимое буфера целиком или частично выводится на экран. Причем выводить весь буфер всегда целиком совсем не обязательно. Достаточно обновлять содержимое только в тех позициях, где изображение изменилось по сравнению с предыдущим циклом. Чтобы не было мельтешения и артефактов на изображении следует синхронизировать обновление изображения в буфере и вывод этого буфера на экран.
Go to the top of the page
 
+Quote Post
Slavast
сообщение Dec 13 2010, 10:59
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395



Цитата(rezident @ Dec 9 2010, 20:19) *
Под буфером я имею в виду буфер в ОЗУ размером такой же как полный экран дисплея. Изображение формируется в этом буфере. Потом содержимое буфера целиком или частично выводится на экран. Причем выводить весь буфер всегда целиком совсем не обязательно. Достаточно обновлять содержимое только в тех позициях, где изображение изменилось по сравнению с предыдущим циклом. Чтобы не было мельтешения и артефактов на изображении следует синхронизировать обновление изображения в буфере и вывод этого буфера на экран.



Вот боюсь как бы хватило памяти МК на то, чтоб прописать каждый адрес 128*64 дисплея.
Или хватит? Т.е. в ОЗУ прописать каждую байтовую позицию вывода - и их получится 128*64= 8192? так?
пробовал накладывать изображения - сильно мельтешит.
Также делал процедуру стирания после вывода предыдущего изображения - мельтешит также.

Цитата(Diusha @ Dec 11 2010, 18:21) *
Буфер есть и в самом ЖКИ (то биш экранная память), у многих он доступен в обе стороны. Так что если в МК с памятью напряженка, можно и им воспользоваться. Правда тогда могут получиться упомянутые rezident`ом мельтешения


В даташите вот вроде не указывают наличия экранной памяти((
Go to the top of the page
 
+Quote Post
Diusha
сообщение Dec 14 2010, 05:40
Сообщение #6


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Цитата(Slavast @ Dec 13 2010, 13:59) *
128*64= 8192? так?

Не так. Забыли поделить на 8 --> =1024. На каждый пиксель вполне достаточно 1 бита

Цитата(Slavast @ Dec 13 2010, 13:59) *
В даташите вот вроде не указывают наличия экранной памяти((

Конечно, зачем же отдельно писать о том чего НЕ быть не может? wink.gif
Любая отображаемая картинка хранится в памяти ЖКИ (точнее, в памяти встроенного контроллера). Вопрос только в том, есть ли возможность ее читать.
Обычно у подобных ЖКИ есть возможность организовать либо последовательный интерфейс, либо параллельный. Обычно в случае последовательного читать нет возможности, а в случае параллельного - есть. Уточните по ДШ.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Slavast   ЖКИ BG12864E на ATMEGA2561   Dec 9 2010, 09:32
|- - ae_   Цитата(Slavast @ Dec 9 2010, 19:30) DOC1 ...   Dec 9 2010, 13:03
|- - Diusha   Буфер есть и в самом ЖКИ (то биш экранная память),...   Dec 11 2010, 15:21
- - 011119xx   Цитата(Slavast @ Dec 9 2010, 14:32) Перек...   Dec 9 2010, 10:42
- - 011119xx   Что-то не понятно по этим картинкам. Наверно приде...   Dec 9 2010, 11:53
- - 011119xx   Выложите лучше исходник и даташит на дисплей (если...   Dec 14 2010, 07:23
|- - Slavast   Цитата(011119xx @ Dec 14 2010, 13:23) Выл...   Dec 17 2010, 06:36
|- - Slavast   код прграммы - здесь шарик перепрыгивает через гра...   Dec 17 2010, 08:44
|- - shrek   Цитата(Slavast @ Dec 17 2010, 14:44) код ...   Dec 20 2010, 04:42
- - shrek   я думаю это некий аналог МТ18264А. Так вот как я э...   Dec 16 2010, 07:29
- - bodja74   Что мешает отрисовать строку на первой половине ,а...   Dec 18 2010, 13:58
- - rezident   Цитата(bodja74 @ Dec 18 2010, 21:58) Что ...   Dec 20 2010, 04:05


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 12:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01425 секунд с 7
ELECTRONIX ©2004-2016