Цитата(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 бит! Что я и сделал

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