Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

H/W Scroll

Непрочитано 18.10.2015, 15:31  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию [LCD] H/W Scroll

Помогите разобраться со скроллингом. Работаю с ST7735S.
Области скроллинга размечены:
Код:
void ST7735S_DefineScrollArea (unsigned char TOP, unsigned char BOTTOM)
{
	LCD_WriteCmd(ST7735S_SCRLAR); 	//Vertical scroll
	LCD_WriteData(0);	//BOTTOM area size
	LCD_WriteData(BOTTOM);
	LCD_WriteData(0);	//Scroll area size
	LCD_WriteData(LCD_V - TOP - BOTTOM);
	LCD_WriteData(0);	//TOP area size
	LCD_WriteData(TOP);	
}
Далее сдвигаем страницу памяти:
Код:
		LCD_WriteCmd(ST7732S_VSCSAD);
		LCD_WriteData(0x00);
		LCD_WriteData(VScrollValue);
Проблема в том, что новая запись всегда сопровождается сбросом скроллинга и выходом в обычный режим. Я ожидал, что память останется "сдвинутой" на VScrollValue строк. На SD1289, думаю, аналогично сделано.
Реклама:
Easyrider83 вне форума  
Непрочитано 19.10.2015, 22:23  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: [LCD] H/W Scroll

В общем, сделал через залипуху.
Плавная анимация прокрутки вниз
Код:
			for (cnt = CurString * 16 - 16; cnt ‹ CurString * 16; cnt++)
			{
				LCD_ScrollString(cnt);
				vTaskDelay(10);
			}
Печать строки
Код:
			LCD_ASCII8X16_PrintString(0, LCD_V - 16 * CurString, Data.Text, Data.Color, Data.BkColor);
			CurString++;
			if (CurString › LCD_V/16 - 1) CurString = 1;
И сдвиг
Код:
LCD_ScrollString(CurString * 16 - 16);
Смысл в том, что отрисовка и сдвиг происходят настолько быстро (частота SPI 72/4 МГц), что глаз не успевает заметить. В результате имеем плавную анимированную прокрутку списка.
Easyrider83 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Net Scroll мышиный драйвер 3d cube Отвлекитесь, эмбеддеры! 16 27.07.2013 09:41
у кого есть d-link 2500u H/W Ver.:A1 igonzo Ремонт оргтехники 0 06.09.2010 17:02


Часовой пояс GMT +4, время: 12:48.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.