Юзаем дисплеи от сотовых и других потаскунчиков.

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение vlad145 »

Спасибо. А я и не заметил в коментах параметр поворота. А какой программой лучше конвертировать картинки?
Владимир
uzamar
Родился
Сообщения: 16
Зарегистрирован: Пт дек 24, 2010 09:31:06

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение uzamar »

vlad145 писал(а):Спасибо. А я и не заметил в коментах параметр поворота. А какой программой лучше конвертировать картинки?

Любой какую найдете, хоть ImgConvert. А лучше прикрутить SD-карту и выводить BMP.
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение vlad145 »

uzamar писал(а):
vlad145 писал(а):Спасибо. А я и не заметил в коментах параметр поворота. А какой программой лучше конвертировать картинки?

Любой какую найдете, хоть ImgConvert. А лучше прикрутить SD-карту и выводить BMP.

Я где то давно натыкался на функцию вывода BMP только под BASIC, а под CVAVR мне не попадалась.
Владимир
Аватара пользователя
Alex62
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Чт ноя 19, 2009 13:37:21
Откуда: Минск

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Alex62 »

Картинки много места во флеш памяти занимают. Есть один конвертер который сжимает картинки. ScreenBin9 фамилия у него.
Гуглится. Надо под него процедуру вывода сжатой картинки написать. Рисованные картинки хорошо сжимает. Растровые слабовато. Ну и конечно их лучше в SD картах хранить, а карты подключаются через SPI . И дисплей через SPI . Правда в MEGAx всего один SPI интерфейс аппаратный. Вот потому я и XMEGA юзаю. Перспективней.
Общаюсь на ТЫ. Без расшаркиваний.
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение vlad145 »

А если во внешней памяти хранить, типа AT45DB161, для картинок памяти хватит.
Владимир
Аватара пользователя
Alex62
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Чт ноя 19, 2009 13:37:21
Откуда: Минск

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Alex62 »

vlad145 писал(а):А если во внешней памяти хранить, типа AT45DB161, для картинок памяти хватит.

Да легко. Про SPI я уже писал, останется только какую-то файловую систему написать. Что б знать откуда какую картинку выковыривать.
Общаюсь на ТЫ. Без расшаркиваний.
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение vlad145 »

А как можно использовать шрифты разных размеров, или есть функция увеличения? Для дисплея nokia 1100 видел такую функцию, а для данного можно её адаптировать?
Владимир
Аватара пользователя
Alex62
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Чт ноя 19, 2009 13:37:21
Откуда: Минск

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Alex62 »

vlad145 писал(а):А как можно использовать шрифты разных размеров, или есть функция увеличения? Для дисплея nokia 1100 видел такую функцию, а для данного можно её адаптировать?

Не знаю про какую функцию идет речь, но думаю что врятли. Нужно создавать другую таблицу ASCII с другим размером шрифта. Процедуру же вывода можно оставить прежней, изменив значения
#define CHAR_W 8
#define CHAR_H 14
на соответствующие данным таблицы.
Прикрепляю програмки создания фонтов. Сам их не юзал. Попробуй.
Вложения
s65fc8x14.zip
(253.91 КБ) 284 скачивания
s65fc8x12.zip
(253.91 КБ) 254 скачивания
Последний раз редактировалось Alex62 Вт авг 23, 2011 15:16:41, всего редактировалось 1 раз.
Общаюсь на ТЫ. Без расшаркиваний.
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение vlad145 »

Alex62 писал(а):
vlad145 писал(а):А как можно использовать шрифты разных размеров, или есть функция увеличения? Для дисплея nokia 1100 видел такую функцию, а для данного можно её адаптировать?

Не знаю про какую функцию идет речь, но думаю что врятли. Нужно создавать другую таблицу ASCII с другим размером шрифта. Процедуру же вывода можно оставить прежней, изменив значения
#define CHAR_W 8
#define CHAR_H 14
на соответствующие данным таблицы.

Но если я правильно понял изменив данные параметры мы все равно будем иметь один шрифт, только другого размера. А два получается не как?
Ас нокиевским дисплеем я ошибся, не 1100 а 3310. Там есть функция LcdStr в которой есть параметр LcdFontSize, изменяя который получаем шрифт двойного размера.
Владимир
Аватара пользователя
Alex62
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Чт ноя 19, 2009 13:37:21
Откуда: Минск

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Alex62 »

Ну почему же. Микроконтроллер очень гибкий инструмент. Можно (как в том примере вывода картинки с ротацией) добавить в процедуру вывода символа еще один параметр, и в зависимости от его значения выводить шрифт того или иного размера. Причем их может быть не 2, а много размеров.

PS. Не надо так обширно цитировать. Ветка разрастется, и будет сложно найти полезное зерно.
Общаюсь на ТЫ. Без расшаркиваний.
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение vlad145 »

Для меня это видимо ещё сложно изменить параметр в функции, тем более надо знать какой.
Владимир
Аватара пользователя
Alex62
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Чт ноя 19, 2009 13:37:21
Откуда: Минск

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Alex62 »

Проанализируй процедуру lcd_picture() и по аналогии:
вводим переменную char font, и создаем условие.

void put_char(char x, char y, char c, unsigned int color, char rot, char font)
.......
if (font==1)
{
вывод шрифта одного размера
}
else
{
вывод шрифта другого размера
};
Это для двух размеров. Для большего количества используй переключатель switch/

switch(font)
{
default:
case 0:
первый размер;
case 1:
второй размер;
case 2:
третий размер;
}

Ну и для всех размеров надо массив символов писать нужного размера.
Последний раз редактировалось Alex62 Вт авг 23, 2011 16:02:57, всего редактировалось 1 раз.
Общаюсь на ТЫ. Без расшаркиваний.
uzamar
Родился
Сообщения: 16
Зарегистрирован: Пт дек 24, 2010 09:31:06

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение uzamar »

Alex62 писал(а):Картинки много места во флеш памяти занимают. Есть один конвертер который сжимает картинки. ScreenBin9 фамилия у него.
Гуглится. Надо под него процедуру вывода сжатой картинки написать. Рисованные картинки хорошо сжимает. Растровые слабовато. Ну и конечно их лучше в SD картах хранить, а карты подключаются через SPI . И дисплей через SPI . Правда в MEGAx всего один SPI интерфейс аппаратный. Вот потому я и XMEGA юзаю. Перспективней.

А я STm32 юзаю, еще более перспективней. С месяц назад подключил к нему дисплей от какого-то MP4 240x320 (HX8347) по 16 битной шине + карточку SD + вывод BMP. В планах сделать бортовик на свое авто.
Аватара пользователя
Alex62
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Чт ноя 19, 2009 13:37:21
Откуда: Минск

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Alex62 »

uzamar писал(а):А я STm32 юзаю, еще более перспективней.

Наверное. Только я еще из Атмеловских восьмиразрядников не вырос. Опыта поднакоплю, и тогда.
А пока китайца 320х240 подключаю к XMEGA A3. Благо их дешевеньких валом на разборках.
Общаюсь на ТЫ. Без расшаркиваний.
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение vlad145 »

Alex62 писал(а):Проанализируй процедуру lcd_picture() и по аналогии:
вводим переменную char font, и создаем условие.

void put_char(char x, char y, char c, unsigned int color, char rot, char font)
.......
.......

Ну и для всех размеров надо массив символов писать нужного размера.


Спасибо, буду шерстить.
Владимир
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение vlad145 »

Alex62 писал(а):
uzamar писал(а):А я STm32 юзаю, еще более перспективней.

Наверное. Только я еще из Атмеловских восьмиразрядников не вырос. Опыта поднакоплю, и тогда.
А пока китайца 320х240 подключаю к XMEGA A3. Благо их дешевеньких валом на разборках.


У меня есть в наличии STM32 на базе ARM32F100, только с какой стороны подходить пока не знаю.
Владимир
uzamar
Родился
Сообщения: 16
Зарегистрирован: Пт дек 24, 2010 09:31:06

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение uzamar »

Alex62 писал(а):А пока китайца 320х240 подключаю к XMEGA A3.


Какой контроллер дисплея? У меня, если надо, есть для HX8347 могу скинуть.
Аватара пользователя
Alex62
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Чт ноя 19, 2009 13:37:21
Откуда: Минск

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Alex62 »

Скорее всего SSD1298 . В принцыпе даташит есть, инициализацию тоже накопал, думаю проблем быть не должно. Одна проблема - время. Нехватат.
Общаюсь на ТЫ. Без расшаркиваний.
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение vlad145 »

Alex62 писал(а):
void put_char(char x, char y, char c, unsigned int color, char rot, char font)
.......
if (font==1)
..........


Пытаюсь поправить данный код для использования двух шрифтов.
Пишу в CVAVR вот так:

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

// поместить символ в графическую память дисплея
void put_char(char x, char y, char c, unsigned int color, char rot, char Font)
{
  char h,ch,p,mask;

  CS= 0;
 
  switch(rot)
  {
    default:
    case 0:
      lcd_reg(0x05);lcd_dat(0x0038);
      lcd_reg(0x17);lcd_dat8(x+CHAR_W-1, x);
      lcd_reg(0x16);lcd_dat8(y+CHAR_H-1, y);
      lcd_reg(0x21);lcd_dat8(x,y);
      lcd_reg(0x22);
      lcd_write8(0x76); 
      break;
    case 1:
      lcd_reg(0x05);lcd_dat(0x0030);
      lcd_reg(0x16);lcd_dat8(x+CHAR_W-1, x);
      lcd_reg(0x17);lcd_dat8(y+CHAR_H-1, y);
      lcd_reg(0x21);lcd_dat8(y, x);
      lcd_reg(0x22);
      lcd_write8(0x76); 
      break;
  }


  if (Font==1)
  {
         for (h=0; h<CHAR_H; h++) // every column of the character
     {       
       if (rot==1)
          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)
          {
            lcd_write(color);               
          }
          else
          {
            lcd_write(bgcolor);
          }
          mask=mask/2;
        }  // for p
        if (c>127) {
        c=c-57;          //убираем отсутствующую часть таблицы ASCII
        };
     }
   
  }
  else 
  {   
         for (h=0; h<CHAR_H; h++) // every column of the character
     {       
       if (rot==1)
          ch=ascii_tab2[ c-32 ][h];   
          else
          ch=ascii_tab2[ c-32 ][CHAR_H-h-1];
   
        mask=0x80;
        for (p=0; p<CHAR_W; p++)  // write the pixels
        {
          if (ch&mask)
          {
            lcd_write(color);               
          }
          else
          {
            lcd_write(bgcolor);
          }
          mask=mask/2;
        }  // for p
     }
   
    };

  CS= 1;  // deselect display   

}

// записать строку, начиная с координат x, y, цветом color и ориентацией orient
// если orient=0, то горизонтально, если =1, то вертикально
void put_string(unsigned char x, unsigned char y, char *str, unsigned int color, unsigned char orient)
{
  j=0;
  while (j<strlen(str))
  {
    put_char(x+j*CHAR_W,y,str[j],orient, color);   //  0 deg. rotated
    j++;
  }
}


При компиляции выпадает ошибка:

too few arguments in function call

В какую сторону рыть ума не приложу. Выручайте!
Владимир
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение vlad145 »

Уважаемый Alex62. Ещё одна засада по Вашему проекту. Я не могу вывести закрашенную область, просто ничего не выводится. А если выводить квадрат с закрашиванием, то квадрат рисуется, а закрашивание процентов на 10. :dont_know:
Владимир
Ответить

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