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

 
 
> ЖКИ 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
Ответов
011119xx
сообщение Dec 14 2010, 07:23
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



Выложите лучше исходник и даташит на дисплей (если он на Си). Так дело быстрее пойдет

Сообщение отредактировал 011119xx - Dec 14 2010, 07:26
Go to the top of the page
 
+Quote Post
Slavast
сообщение Dec 17 2010, 08:44
Сообщение #3


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

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



код прграммы - здесь шарик перепрыгивает через границу экрана, но не переезжает через нее.

Цитата(shrek @ Dec 16 2010, 14:29) *
я думаю это некий аналог МТ18264А. Так вот как я эту проблему решил. Там тоже полуэкраны. Я их "обьеденил" пишу в обе половины страницу и колонку, а далее начинаю из 128 байтного буфера писать в память дисплея "точки" причем при переходе между 63 колонкой и 64 (на этой границе меняются половины экрана 64 это 0 колонка второго экрана) выбирается второй чип или полуэкран и он пишет во вторую половину. Признак второй половины это 1 в 7 бите 00FFFFFF 01000000. Когда счетчик байтов доходит до этого момента логика автоматом выбирает другой чип. Рисунок на весь экран выводится корректно!



Когда дохожу до 64 колонки конец картинки начинает заезжать на текущий полуэкран в его начало. Тут единственный способ это наверное на 63 колонке побайтово читать хвостик шарика во второй экран, а потом обрезанную основную часть в первый. Затем во втором экране читать массив байтов шарика на 2-й байт раньше с конца, и в 1-м выводить без последних 2-хбайтов. Ит.д. Другого пока ничего и не придумаешь.
Прикрепленные файлы
Прикрепленный файл  Kvadrat_zerkalo.rar ( 67.28 килобайт ) Кол-во скачиваний: 24
 
Go to the top of the page
 
+Quote Post
shrek
сообщение Dec 20 2010, 04:42
Сообщение #4


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

Группа: Участник
Сообщений: 125
Регистрация: 1-12-08
Из: г. Орел
Пользователь №: 42 126



Цитата(Slavast @ Dec 17 2010, 14:44) *
код прграммы - здесь шарик перепрыгивает через границу экрана, но не переезжает через нее.




Когда дохожу до 64 колонки конец картинки начинает заезжать на текущий полуэкран в его начало. Тут единственный способ это наверное на 63 колонке побайтово читать хвостик шарика во второй экран, а потом обрезанную основную часть в первый. Затем во втором экране читать массив байтов шарика на 2-й байт раньше с конца, и в 1-м выводить без последних 2-хбайтов. Ит.д. Другого пока ничего и не придумаешь.


Нафига? после 63 колонки переключить половины дисплея! следующий байт будет выводиться в 64 колонку (если вы предварительно установили во второй половине номер странички и колонку, с которой во второй половине начнется запись озу экрана)

У меня грубо говоря в контроллере "ОЗУ экрана" не разбита на половины. Составляет 128 байт выводится целиком последовательно сначала в одну потом в другую половину автоматом (за счет логики переключения половин дисплея в момент перехода с 63 на 64 колонку). Можно писать данные в любое место страницы дисплея. Хоть на границе между 63 и 64 колонкой пару байт вывести.

63 это 0x3F (00111111)
64 это 0x40 (01000000)
за признак переключения половин можно взять 7 бит! Что я и сделал biggrin.gif

Исходники для дисплея для AT91SAM7A3 если планируете использовать естественно подредактируйте под свою схему) +У меня возможны ошибки с назначением ног в коментах, так как не раз все правилось) Но!!! Код весьма работоспособный! Рисунок (наш логотип) виводит корректно! И шустро! Частоту не считал, но где-то около 800 кГц. Задержки можете поставить свои)

Сообщение отредактировал shrek - Dec 20 2010, 04:58
Прикрепленные файлы
Прикрепленный файл  display.zip ( 42.6 килобайт ) Кол-во скачиваний: 14
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Slavast   ЖКИ BG12864E на ATMEGA2561   Dec 9 2010, 09:32
- - rezident   Сдвигайте не на экране, а внутри МК, в буферной па...   Dec 9 2010, 10:29
|- - Slavast   Цитата(rezident @ Dec 9 2010, 14:29) Сдви...   Dec 9 2010, 11:30
|- - ae_   Цитата(Slavast @ Dec 9 2010, 19:30) DOC1 ...   Dec 9 2010, 13:03
|- - rezident   Цитата(Slavast @ Dec 9 2010, 16:30) Я сдв...   Dec 9 2010, 17:19
|- - Diusha   Буфер есть и в самом ЖКИ (то биш экранная память),...   Dec 11 2010, 15:21
|- - Slavast   Цитата(rezident @ Dec 9 2010, 20:19) Под ...   Dec 13 2010, 10:59
|- - Diusha   Цитата(Slavast @ Dec 13 2010, 13:59) 128*...   Dec 14 2010, 05:40
- - 011119xx   Цитата(Slavast @ Dec 9 2010, 14:32) Перек...   Dec 9 2010, 10:42
- - 011119xx   Что-то не понятно по этим картинкам. Наверно приде...   Dec 9 2010, 11:53
|- - Slavast   Цитата(011119xx @ Dec 14 2010, 13:23) Выл...   Dec 17 2010, 06:36
- - 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 Текстовая версия Сейчас: 24th June 2025 - 19:20
Рейтинг@Mail.ru


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