Дисплей от Siemens S65
- Spider
- Опытный кот
- Сообщения: 732
- Зарегистрирован: Чт дек 29, 2005 07:29:25
- Откуда: Омск
- Контактная информация:
Re: Дисплей от Siemens S65
поигрался со скролом, хрень какая-то. Скролить то она скролит, но как-то странно, такое ощущение что просто смещает точку начала отсчёта. При этом скролить бесконечно не получится, а если обратно выставить регистр на 0, то тупо "отлистает назад".
Странная фенька.
Странная фенька.
- Реклама
Re: Дисплей от Siemens S65
кстати насчет скролинга...
а если сделать так:
скролим на 1 пиксель.
нижнюю строку заполняем 1 строкой новой картинки
скролим на 1 пиксель
заполняем второй строкой и так далее, получется плавно выдвинуть 2 картинку? никто случаем не пробовал?
а если сделать так:
скролим на 1 пиксель.
нижнюю строку заполняем 1 строкой новой картинки
скролим на 1 пиксель
заполняем второй строкой и так далее, получется плавно выдвинуть 2 картинку? никто случаем не пробовал?
- Spider
- Опытный кот
- Сообщения: 732
- Зарегистрирован: Чт дек 29, 2005 07:29:25
- Откуда: Омск
- Контактная информация:
Re: Дисплей от Siemens S65
Получается. Но только её потом нужно будет обратно на всю ширину проскролить.
Re: Дисплей от Siemens S65
а если не скролить - не будет выводиться ничего? или координаты сбиваются?
можно же вывести... потом стереть все и в момент когда экран монотонный - отскролить назад... зато менюшки делать можно прикольные
можно же вывести... потом стереть все и в момент когда экран монотонный - отскролить назад... зато менюшки делать можно прикольные
- maglev
- Потрогал лапой паяльник
- Сообщения: 316
- Зарегистрирован: Пт апр 17, 2009 22:45:42
- Откуда: Minsk
- Контактная информация:
Re: Дисплей от Siemens S65
смещается именно начало отсчета (начало видеобуфера), насколько помню. В любом случае выводится все, только в другом месте. Сейчас не вижу причин не использовать такое поведение для терминала, например, но тогда причины были. Может из-за горизонтального положения дисплея в том устройстве. Давно делал, поднимать лень.
- Реклама
- demonchik
- Встал на лапы
- Сообщения: 94
- Зарегистрирован: Вт апр 07, 2009 13:39:13
- Откуда: одесса
- Контактная информация:
Re: Дисплей от Siemens S65
Всем мяу!!!!!!! а я таки сделал осциллограф!!!!!!! на меге8 и дисплей от нокии3310!!!!!!! работает на ура!!!! на железе лучче работает чем в протеусе.... оно и понятно!!! только видео не хочет добавляться.... жаль...
радиоэлектроника - жизнь моя...
Re: Дисплей от Siemens S65
А как большие цифры вывести на экран??? Мне нужно часы отобразить на весь экран. А то 6х8, 5х5 ... А чего нибудь 100х40 ??? Как сделать?
Нельзя всё знать, достаточно понимать.
Re: Дисплей от Siemens S65
нарисуйте себе цифры 100х40.. и выводите наздоровье...
не понятно в чем собственно проблемма.
не понятно в чем собственно проблемма.
Re: Дисплей от Siemens S65
Если самому рисовать шрифт то он не влазиет в МК (мега8). Слишком большой массив получается. Нельзя ли программно увеличить стандартный шрифт 14х8 ? Он мало места во flash занимает.
Нашел такой пример, но масштаб выше двух не работает:
Нашел такой пример, но масштаб выше двух не работает:
Код: Выделить всё
// поместить символ в графическую память дисплея
// m - масштаб текста. 1-самый маленький
void put_char(char x, char y, char c, unsigned int color, char m)
{
char h,ch,p,mask,tt;
x=DISP_H - CHAR_H - x;
WRCMD(0xEF90);
WRCMD(0x0504);
WRCMD(0x0800+y);
WRCMD(0x0A00+x);
WRCMD(0x0900+y+CHAR_H*m-1);
WRCMD(0x0B00+x+CHAR_W*m-1);
for (h=CHAR_H; h>0; h--) // every column of the character
{
for(tt=0;tt<m;tt++)
{
ch=ascii_tab[ c-32 ][CHAR_H-h];
mask=0x01;
for (p=0; p<CHAR_W; p++) // write the pixels
{
if (ch&mask)
{
WRDATA(color);
if(m==2) WRDATA(color);
}
else
{
WRDATA(bgcolor);
if(m==2) WRDATA(bgcolor);
}
mask=mask*2;
}
}
}
}
// вывести строку, начиная с координат x,y, цветом color
// m - масштаб текста. 1-самый маленький
void put_string(unsigned char x, unsigned char y, char *str, unsigned int color, char m)
{
unsigned char j=0;
while (j<strlen(str))
{
put_char(x+j*CHAR_W*m,y,str[j],color,m); // 0 deg. rotated str[j]
j++;
}
}
Нельзя всё знать, достаточно понимать.
Re: Дисплей от Siemens S65
Немного переделал функцию put_char, теперь можно выводить текст с масштабированием от 1 до 4.
Код: Выделить всё
// поместить символ в графическую память дисплея
// m - масштаб текста. 1-самый маленький
void put_char(char x, char y, char c, unsigned int color, char m) {
char h,ch,p,mask,tt;
x=DISP_H - CHAR_H - x;
WRCMD(0xEF90);
WRCMD(0x0504);
WRCMD(0x0800+y);
WRCMD(0x0A00+x);
WRCMD(0x0900+y+CHAR_H*m-1);
WRCMD(0x0B00+x+CHAR_W*m-1);
for (h=CHAR_H; h>0; h--) { // every column of the character
for(tt=0;tt<m;tt++) {
ch=ascii_tab[ c-32 ][CHAR_H-h];
mask=0x01;
for (p=0; p<CHAR_W; p++) { // write the pixels
if (ch&mask) {
WRDATA(color);
if(m==2) {
WRDATA(color);
}
if (m==3) {
WRDATA(color);
WRDATA(color);
}
if (m==4) {
WRDATA(color);
WRDATA(color);
WRDATA(color);
}
}
else {
WRDATA(bgcolor);
if(m==2) {
WRDATA(bgcolor);
}
if (m==3) {
WRDATA(bgcolor);
WRDATA(bgcolor);
}
if (m==4) {
WRDATA(bgcolor);
WRDATA(bgcolor);
WRDATA(bgcolor);
}
}
mask=mask*2;
}
}
}
}
Нельзя всё знать, достаточно понимать.
Re: Дисплей от Siemens S65
Хочу, для примера, вывести 12:15
Error: C:\Users\Äìèòðèé\Desktop\Ðàáîòà ñ äèñïëååì\S65\S65.c(582): character constant is too long
Чего ему надо? Как строки то сложить?
Код: Выделить всё
unsigned int counter=15;
...
while (1)
{
char cnt[]; // промежуточная переменная для функции sprint()
sprintf(cnt,"%5u",counter); // преобразование числа в строку
put_string(0, 0,'12:'+cnt, 0xF800, 4); <-- ошибка
};Error: C:\Users\Äìèòðèé\Desktop\Ðàáîòà ñ äèñïëååì\S65\S65.c(582): character constant is too long
Чего ему надо? Как строки то сложить?
Нельзя всё знать, достаточно понимать.
Re: Дисплей от Siemens S65
Мужики, дайте, пожалуйста, самую последнюю версию описалова на ls020 с системой команд. Мучает вопрос как в нём можно контраст регулировать (где-то находил, что это вроде как возможо)? И ещё, как писать не напрямую в отображаемую область, а в видеопамять экрана? Спасибо.
- demonchik
- Встал на лапы
- Сообщения: 94
- Зарегистрирован: Вт апр 07, 2009 13:39:13
- Откуда: одесса
- Контактная информация:
Re: Дисплей от Siemens S65
Всем котам МЯУ !
Написал обработчик кнопок, прикрутил дисплей LS020. И далее думаю сделать примитивное меню. но есть вопрос: если при нажатии кнопки меняется текст и допустим меняется на одной и той же позиции, то он просто накладывается на предыдущий текст. при этом, если выводимый текст короче предыдущего, от него остается кусок! Уважаемые коты! как с этим бороться? и если строчки будут бегать вверх или вниз (типа меню) как сделать чтоб выводилось только нужное?
Написал обработчик кнопок, прикрутил дисплей LS020. И далее думаю сделать примитивное меню. но есть вопрос: если при нажатии кнопки меняется текст и допустим меняется на одной и той же позиции, то он просто накладывается на предыдущий текст. при этом, если выводимый текст короче предыдущего, от него остается кусок! Уважаемые коты! как с этим бороться? и если строчки будут бегать вверх или вниз (типа меню) как сделать чтоб выводилось только нужное?
радиоэлектроника - жизнь моя...
- demonchik
- Встал на лапы
- Сообщения: 94
- Зарегистрирован: Вт апр 07, 2009 13:39:13
- Откуда: одесса
- Контактная информация:
Re: Дисплей от Siemens S65
и еще: можно ли будет не пользоваться графическим буфером в памяти МК? или без этого никак в моем случае?
радиоэлектроника - жизнь моя...
Re: Дисплей от Siemens S65
Залей область куда выводится текст цветом фона, а потом уже выводи. Как раз старая надпись полностью сотрется и на "чистом" месте по новой пиши текст.
Нельзя всё знать, достаточно понимать.
- demonchik
- Встал на лапы
- Сообщения: 94
- Зарегистрирован: Вт апр 07, 2009 13:39:13
- Откуда: одесса
- Контактная информация:
Re: Дисплей от Siemens S65
и еще надо узнавать длину предыдущей строки чтоб знать сколько заливать
радиоэлектроника - жизнь моя...
Re: Дисплей от Siemens S65
Ну неужели ни кто из вас, уважаемые, не знает как регулировать контраст и лить в фоновую страницу видеопамяти ls020? Вы что, совсем уже мышей не ловите??? Фи, товарищи, фи!!!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18675
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Дисплей от Siemens S65
я тут решил приступить к освоению сего занимательного дисплея и накачал всякой информации из сети для изучения... так вот, вроде нашелся даташит на контроллер LS020xxxx - там ни слова не говорится о какой-то "фоновой" странице памяти. я так понял, что это устоявшееся заблуждение общественности, типа мифа.ELcat писал(а):Ну неужели ни кто из вас, уважаемые, не знает как регулировать контраст и лить в фоновую страницу видеопамяти ls020? Вы что, совсем уже мышей не ловите??? Фи, товарищи, фи!!!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Fasterpast
- Мучитель микросхем
- Сообщения: 493
- Зарегистрирован: Ср фев 14, 2007 12:07:58
- Откуда: Москва
- Контактная информация:
Re: Дисплей от Siemens S65
Там памяти ровно столько, сколько отображается на дисплее. В мобилке этот дисплей управляется контроллером, в котором и находится вся фоновая память, регулировка контраста и тд.
Ну либо это какие-то недокументированные ф-ии.
Ну либо это какие-то недокументированные ф-ии.
Re: Дисплей от Siemens S65
Предыдущая строка стирается такой же строкой (по длине) содержащей одни пробелы ...mr_smit писал(а):Залей область куда выводится текст цветом фона, а потом уже выводи. Как раз старая надпись полностью сотрется и на "чистом" месте по новой пиши текст.


