Дисплей от Siemens S65

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Re: Дисплей от Siemens S65

Сообщение Spider »

поигрался со скролом, хрень какая-то. Скролить то она скролит, но как-то странно, такое ощущение что просто смещает точку начала отсчёта. При этом скролить бесконечно не получится, а если обратно выставить регистр на 0, то тупо "отлистает назад".
Странная фенька.
Реклама
Fighter
Встал на лапы
Сообщения: 94
Зарегистрирован: Ср авг 01, 2007 13:32:33

Re: Дисплей от Siemens S65

Сообщение Fighter »

кстати насчет скролинга...

а если сделать так:
скролим на 1 пиксель.
нижнюю строку заполняем 1 строкой новой картинки
скролим на 1 пиксель
заполняем второй строкой и так далее, получется плавно выдвинуть 2 картинку? никто случаем не пробовал?
Реклама
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Re: Дисплей от Siemens S65

Сообщение Spider »

Получается. Но только её потом нужно будет обратно на всю ширину проскролить.
Fighter
Встал на лапы
Сообщения: 94
Зарегистрирован: Ср авг 01, 2007 13:32:33

Re: Дисплей от Siemens S65

Сообщение Fighter »

а если не скролить - не будет выводиться ничего? или координаты сбиваются?

можно же вывести... потом стереть все и в момент когда экран монотонный - отскролить назад... зато менюшки делать можно прикольные
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
maglev
Потрогал лапой паяльник
Сообщения: 316
Зарегистрирован: Пт апр 17, 2009 22:45:42
Откуда: Minsk
Контактная информация:

Re: Дисплей от Siemens S65

Сообщение maglev »

смещается именно начало отсчета (начало видеобуфера), насколько помню. В любом случае выводится все, только в другом месте. Сейчас не вижу причин не использовать такое поведение для терминала, например, но тогда причины были. Может из-за горизонтального положения дисплея в том устройстве. Давно делал, поднимать лень.
Реклама
Аватара пользователя
demonchik
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт апр 07, 2009 13:39:13
Откуда: одесса
Контактная информация:

Re: Дисплей от Siemens S65

Сообщение demonchik »

Всем мяу!!!!!!! а я таки сделал осциллограф!!!!!!! на меге8 и дисплей от нокии3310!!!!!!! работает на ура!!!! на железе лучче работает чем в протеусе.... оно и понятно!!! только видео не хочет добавляться.... жаль...
радиоэлектроника - жизнь моя...
Реклама
Аватара пользователя
mr_smit
Вымогатель припоя
Сообщения: 651
Зарегистрирован: Пн мар 23, 2009 09:25:58
Откуда: Самара

Re: Дисплей от Siemens S65

Сообщение mr_smit »

А как большие цифры вывести на экран??? Мне нужно часы отобразить на весь экран. А то 6х8, 5х5 ... А чего нибудь 100х40 ??? Как сделать?
Нельзя всё знать, достаточно понимать.
Fighter
Встал на лапы
Сообщения: 94
Зарегистрирован: Ср авг 01, 2007 13:32:33

Re: Дисплей от Siemens S65

Сообщение Fighter »

нарисуйте себе цифры 100х40.. и выводите наздоровье...
не понятно в чем собственно проблемма.
Аватара пользователя
mr_smit
Вымогатель припоя
Сообщения: 651
Зарегистрирован: Пн мар 23, 2009 09:25:58
Откуда: Самара

Re: Дисплей от Siemens S65

Сообщение mr_smit »

Если самому рисовать шрифт то он не влазиет в МК (мега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++;
}
}
Нельзя всё знать, достаточно понимать.
Аватара пользователя
mr_smit
Вымогатель припоя
Сообщения: 651
Зарегистрирован: Пн мар 23, 2009 09:25:58
Откуда: Самара

Re: Дисплей от Siemens S65

Сообщение mr_smit »

Немного переделал функцию put_char, теперь можно выводить текст с масштабированием от 1 до 4. 8)

Код: Выделить всё

// поместить символ в графическую память дисплея
// 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;
      }
    }
  }
}
Нельзя всё знать, достаточно понимать.
Аватара пользователя
mr_smit
Вымогатель припоя
Сообщения: 651
Зарегистрирован: Пн мар 23, 2009 09:25:58
Откуда: Самара

Re: Дисплей от Siemens S65

Сообщение mr_smit »

Хочу, для примера, вывести 12:15

Код: Выделить всё

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

Чего ему надо? Как строки то сложить?
Нельзя всё знать, достаточно понимать.
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: Дисплей от Siemens S65

Сообщение ELcat »

Мужики, дайте, пожалуйста, самую последнюю версию описалова на ls020 с системой команд. Мучает вопрос как в нём можно контраст регулировать (где-то находил, что это вроде как возможо)? И ещё, как писать не напрямую в отображаемую область, а в видеопамять экрана? Спасибо.
Аватара пользователя
demonchik
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт апр 07, 2009 13:39:13
Откуда: одесса
Контактная информация:

Re: Дисплей от Siemens S65

Сообщение demonchik »

Всем котам МЯУ !
Написал обработчик кнопок, прикрутил дисплей LS020. И далее думаю сделать примитивное меню. но есть вопрос: если при нажатии кнопки меняется текст и допустим меняется на одной и той же позиции, то он просто накладывается на предыдущий текст. при этом, если выводимый текст короче предыдущего, от него остается кусок! Уважаемые коты! как с этим бороться? и если строчки будут бегать вверх или вниз (типа меню) как сделать чтоб выводилось только нужное?
радиоэлектроника - жизнь моя...
Аватара пользователя
demonchik
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт апр 07, 2009 13:39:13
Откуда: одесса
Контактная информация:

Re: Дисплей от Siemens S65

Сообщение demonchik »

и еще: можно ли будет не пользоваться графическим буфером в памяти МК? или без этого никак в моем случае?
радиоэлектроника - жизнь моя...
Аватара пользователя
mr_smit
Вымогатель припоя
Сообщения: 651
Зарегистрирован: Пн мар 23, 2009 09:25:58
Откуда: Самара

Re: Дисплей от Siemens S65

Сообщение mr_smit »

Залей область куда выводится текст цветом фона, а потом уже выводи. Как раз старая надпись полностью сотрется и на "чистом" месте по новой пиши текст.
Нельзя всё знать, достаточно понимать.
Аватара пользователя
demonchik
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт апр 07, 2009 13:39:13
Откуда: одесса
Контактная информация:

Re: Дисплей от Siemens S65

Сообщение demonchik »

и еще надо узнавать длину предыдущей строки чтоб знать сколько заливать
радиоэлектроника - жизнь моя...
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: Дисплей от Siemens S65

Сообщение ELcat »

Ну неужели ни кто из вас, уважаемые, не знает как регулировать контраст и лить в фоновую страницу видеопамяти ls020? Вы что, совсем уже мышей не ловите??? Фи, товарищи, фи!!!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18675
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Дисплей от Siemens S65

Сообщение ARV »

ELcat писал(а):Ну неужели ни кто из вас, уважаемые, не знает как регулировать контраст и лить в фоновую страницу видеопамяти ls020? Вы что, совсем уже мышей не ловите??? Фи, товарищи, фи!!!
я тут решил приступить к освоению сего занимательного дисплея и накачал всякой информации из сети для изучения... так вот, вроде нашелся даташит на контроллер LS020xxxx - там ни слова не говорится о какой-то "фоновой" странице памяти. я так понял, что это устоявшееся заблуждение общественности, типа мифа.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Fasterpast
Мучитель микросхем
Сообщения: 493
Зарегистрирован: Ср фев 14, 2007 12:07:58
Откуда: Москва
Контактная информация:

Re: Дисплей от Siemens S65

Сообщение Fasterpast »

Там памяти ровно столько, сколько отображается на дисплее. В мобилке этот дисплей управляется контроллером, в котором и находится вся фоновая память, регулировка контраста и тд.
Ну либо это какие-то недокументированные ф-ии.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Дисплей от Siemens S65

Сообщение dosikus »

mr_smit писал(а):Залей область куда выводится текст цветом фона, а потом уже выводи. Как раз старая надпись полностью сотрется и на "чистом" месте по новой пиши текст.
Предыдущая строка стирается такой же строкой (по длине) содержащей одни пробелы ...
Ответить

Вернуться в «Периферия»