Дисплей от Siemens S65
Ну почему же? Памяти таки действительно две - одна на самом стекле (на TFT сруктурах), а вторая в контроллере. Допустим засылаем картинку, она отображается, засылаем команду 0x0040 -чёрный экран, затем команду 0x0000 и мгновенно появляется засланная ранее картинка. Как это объяснить, как не фоновой страницей памяти?
- Реклама
- Сообщения: 94
- Зарегистрирован: Ср авг 01, 2007 13:32:33
если б страниц было 2 - можно было бы оставив одну картинку на экране, рисовать вторую в память...
а тут либо белый либо черный экран и все.
Просто счетчик адреса защелкивает белый или черный цвет и обновляет TFT пока не включат отображение из памяти... а память там одна.. (эти дисплеи делались для мобильников - никто туда и бита лишнего не засунет, чтобы не удорожать конечный девайс).
а тут либо белый либо черный экран и все.
Просто счетчик адреса защелкивает белый или черный цвет и обновляет TFT пока не включат отображение из памяти... а память там одна.. (эти дисплеи делались для мобильников - никто туда и бита лишнего не засунет, чтобы не удорожать конечный девайс).
объяснить элементарно: получив команду "черный экран" контроллер перестает выводить данные из своего ОЗУ, а вместо этого выводит то, что соответствует черным пикселам, т.е. какое-то константное значение. повторяю - в даташите нет упоминания о нескольких страницах памяти!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Экранчик на самом деле рассчитан на работу с внешним контроллером (как и есть в мобиле), который уже реализует несколько слоёв памяти, синхронизацию кадров для видео и пр. Интересно, а есть ли такой контроллер не в QFN корпусе....
- Сообщения: 70
- Зарегистрирован: Пт авг 01, 2008 08:43:08
На ПЛИС + небольшая микрушка памяти можно реализовать я думаю. Тем более что SPI это просто сдвиговый регистр.. на ПЛИС сляпать проблем нет. Как-то однажды пробовал сделать контроллер SPI -> VGA на вот этом железе http://www.starterkit.ru/html/index.php ... view&id=14 Но 512к памяти очень мало для моей задумки было.. А для дисплея от сименса я думаю вполне хватит и даже на 2 страницы наверно.
Поправьте если ошибаюсь
Поправьте если ошибаюсь
- Реклама
А можно етот самый даташит, дайте ссылочку, пожалуйста. На ПЛИСке конечно можно, область экрана занимает около 47 кБ, если памяти выделить побольше, то можно даже заставить ПЛИСку аппаратно решать 2D задачи, векторную графику рисовать, можно даже Open GL если вы законченный маньяк
. Но ПЛИСка в которой будет хотяб уже 64 кБ по цене весить будет + паябельность корпуса под вопросом.
сочетание AVR и OpenGL должно сопровождаться словами конченый маньякELcat писал(а):можно даже Open GL если вы законченный маньяк
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 70
- Зарегистрирован: Пт авг 01, 2008 08:43:08
Паябельность на грани конечно но припаять можно. А можно купить вышеозначеный кит(что я и сделал) и на нем построить. Ведь скорее всего все это для самообразования и приобретения навыков. Так что кит сослужит свою службу не только в этом проекте. Ну а ели покупать кит не хочется, то можно попробовать сделать ЛУТ для ПЛИСки.. не такая уж она и дорогая на самом деле. Ещё один плюс в том что питание у неё 3.3 ваольта а значит ненужно согласовывать уровни с дисплеем
На разборках телефонов. Хотя именно ls020 стали попадаться всё реже..sersne писал(а):Где можно купить s65 именно ls020.
всем котам МЯУ !
не подскажете как на текст наложить какую то область с каким либо цветом. все это нужно для выделения пункта текстового меню. только вариант закрашивать область а потом выводить текст не предлагайте, пожалуйста.
не подскажете как на текст наложить какую то область с каким либо цветом. все это нужно для выделения пункта текстового меню. только вариант закрашивать область а потом выводить текст не предлагайте, пожалуйста.
радиоэлектроника - жизнь моя...
У меня в функции вывода текста можно выбирать цвет фона, при выборе пункта я просто меняю цвет фона и вывожу тот же текст...
Можно конечно написать ф-ию, которая будет "закрашивать" фон вокруг текста,н о это будет по сути то же самое.
Других нормальных вариантов нет, ибо память дисплея нечитаема, а памяти МК на то чтобы держать картинку - не хватит...
Можно конечно написать ф-ию, которая будет "закрашивать" фон вокруг текста,н о это будет по сути то же самое.
Других нормальных вариантов нет, ибо память дисплея нечитаема, а памяти МК на то чтобы держать картинку - не хватит...
- Сообщения: 70
- Зарегистрирован: Пт авг 01, 2008 08:43:08
Код: Выделить всё
void LCD_PutChar(int x, int y, char c, int rot, long m_wColor, long m_wBackColor)
{
char h,ch,p,mask;
send_cmd(0xEF90);
if(rot)
{
send_cmd(0x0500);
send_cmd(0x0800+x);
send_cmd(0x0A00+y);
send_cmd(0x0900+x+CHAR_W-1);
send_cmd(0x0B00+y+CHAR_H-1);
}
else
{
send_cmd(0x0504);
send_cmd(0x0800+y);
send_cmd(0x0A00+x);
send_cmd(0x0900+y+CHAR_H-1);
send_cmd(0x0B00+x+CHAR_W-1);
}
for(h=0; h<CHAR_H; h++) // every column of the character
{
if(rot)
ch=ascii_tab[c-32][h];
else
ch=ascii_tab[c-32][CHAR_H-h-1];
mask=0x80;
for(p=0; p<CHAR_W; p++) // write the pixels
{
if(ch & mask)
{
send_data(m_wColor);
}
else
{
send_data(m_wBackColor);
}
mask=mask/2;
}
}
ух.... хлопцы! спасиб! выручили 
радиоэлектроника - жизнь моя...
Или лыжи не едут, или совсем не могу понять куда цепляется вывод RESET LS020. На схемах у всех он заведен в МК, но в прошивках никто им не дергает...
Подскажите как надо?
Подскажите как надо?
я вот так их подключаю
а дергается этот вывод RESET при инициализации дисплея. я прикрепил файл. смотрите. если надо, выкину весь проект мой 
Код: Выделить всё
// MK - LCD DDRB | PORTB
// PB0 - RS 1 | 1
// PB1 - // 0 | 0
// PB2 - CS 1 | 1
// PB3 - DAT (MOSI) 1 | 0
// PB4 - Reset 1 | 1
// PB5 - CLK 1 | 0
// PB6 - // 0 | 0
// PB7 - // 0 | 0
// |
// HEX 3D | 15
//- Вложения
-
- s65_lib.h
- (4.27 КБ) 626 скачиваний
радиоэлектроника - жизнь моя...
дергается именно здесь
Код: Выделить всё
void lcd_init(void)
{
int i;
//RS=1 Command
//RS=0 DATA
RESET=0;
CS=0;
delay_ms(5);
RS=1;
RESET=1;
delay_ms(50);
for (i=0;i<12;i++) lcd_c(INIT1[i])
;
delay_ms(7);
for (i=0;i<20;i++) lcd_c(INIT2[i]);
delay_ms(50);
for (i=0;i<1;i++) lcd_c(INIT3[i]);
delay_ms(5);
fill_screen(bgcolor); // очищаем экран от мусора
CS=1;
} радиоэлектроника - жизнь моя...
Спасибо большое. Посмотрел еще несколько проектов...вроде стало прояснятся
За ваш исходник спасибо
а что за проект? Интересно было бы посмотреть!
Код: Выделить всё
если надо, выкину весь проект мойя там пытаюсь сделать текстовое меню. оно там в исходнике есть(точннее только функция выделения пункта и то тестовое). но так чтоб посмотреть и разобраться - годится.
- Вложения
-
- S65.rar
- (116.78 КБ) 440 скачиваний
радиоэлектроника - жизнь моя...


