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

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
uzamar
Родился
Сообщения: 16
Зарегистрирован: Пт дек 24, 2010 09:31:06

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

Сообщение uzamar »

vlad145 писал(а):Попробовал Ваш проект. Все запускается, кроме отображения русских букв. Вместо них мусор. Не подскажете, в чем косяк? Дисплей LPH8836, только вот какой контроллер я не смог найти.


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

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

Сообщение vlad145 »

uzamar писал(а):
vlad145 писал(а):Попробовал Ваш проект. Все запускается, кроме отображения русских букв. Вместо них мусор. Не подскажете, в чем косяк? Дисплей LPH8836, только вот какой контроллер я не смог найти.


Насколько я понял, просто нет массива русских букв.

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

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

Сообщение vlad145 »

УРАААА! Получилось. Как оказалось нужно было прописать следующее:

if (c>127) {
c=c-57; //убираем отсутствующую часть таблицы ASCII
};

P.S. Осталось с графикой разобраться. Есть идеи как?
Владимир
uzamar
Родился
Сообщения: 16
Зарегистрирован: Пт дек 24, 2010 09:31:06

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

Сообщение uzamar »

vlad145 писал(а):УРАААА! Получилось. Как оказалось нужно было прописать следующее:

if (c>127) {
c=c-57; //убираем отсутствующую часть таблицы ASCII
};

P.S. Осталось с графикой разобраться. Есть идеи как?


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

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

Сообщение Alex62 »

Есть пример. Он писался для Xmega A3, но это без разницы. Там только с координатами вывода где-то напутано. Разобраться я еще не успел, времени маловато. Но все работает. А заодно для энтузизистов программирования задача: там вывод организован как заполнение области 8х14 двумя цветами, текста и подложки. При попытке вывести текст поверх картинки, часть картинки закрашивается. Но если написать кусок кода используя процедуру вывода точки LCD_Pixel(), закрашивания можно избежать. Тогда надписи будут прямо поверх картинки
Ну а контроллер в LPH8836 такой HD66773 здесь http://www.watterott.net/misc/S65-LPH88_1.pdf
Вложения
FONTS.rar
Это фонты для этого
(1.98 КБ) 294 скачивания
dispLPH8836forXMEGA.rar
(3.6 КБ) 351 скачивание
Последний раз редактировалось Alex62 Вт авг 23, 2011 11:24:11, всего редактировалось 2 раза.
Общаюсь на ТЫ. Без расшаркиваний.
uzamar
Родился
Сообщения: 16
Зарегистрирован: Пт дек 24, 2010 09:31:06

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

Сообщение uzamar »

Alex62 писал(а):Есть пример. Он писался для Xmega A3, но это без разницы. Там только с координатами вывода где-то напутано. Разобраться я еще не успел, времени маловато. Но все работает. А заодно для энтузизистов программирования задача: там вывод организован как заполнение области 8х14 двумя цветами, текста и подложки. При попытке вывести текст поверх картинки, часть картинки закрашивается. Но если написать кусок кода используя процедуру вывода точки LCD_Pixel(), закрашивания можно избежать. Тогда надписи будут прямо поверх картинки
Ну а контроллер в LPH8836 такой HD66773 здесь http://www.hitachi.com/New/cnews/E/2002/0627/0627.pdf

Просто не закрашивать подложку и все. Т.е. убрать код

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

else
    {
       lcd_write(bgcolor);
}

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

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

Сообщение Alex62 »

Да нет. В том коде что есть подложку не закрашивать не получиться. Там используется процедура вывода области экрана. чем-то закрашивать все равно прийдеся. Ну, скажем так, у меня не получилося.

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

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

Сообщение uzamar »

Alex62 писал(а):Да нет. Выводить точку с коодинатами где есть буква. Где фон, там ничего не выводить. В том коде что есть подложку не закрашивать не получиться. Там используется процедура вывода области экрана. чем-то закрашивать все равно прийдеся

PS. Я не утверждаю что то что мной написано - написано оптимально. Прграммирую я недавно, и опыта еще маловато. Так что критику и принимаю, и приветствую. Заранее спасибо.


А ну да... Инкремента в памяти LCD то не будет поэтому и нужно что-то писать.
Для вывода можно использовать что-то вроде этого:

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

void LCD_PutChar(u16 x,u16 y,u8 c,u16 charColor)
{
  u16 i=0;
  u16 j=0;
 
  u8 tmp_char=0;

  for (i=0;i<16;i++)
  {
    tmp_char=ascii_8x16[((c-0x20)*16)+i];
    for (j=0;j<8;j++)
    {
      if ( (tmp_char >> 7-j) & 0x01 == 0x01)
        {
          LCD_DrawPoint(x+j,y+i,charColor);
        }
    }
  }
}

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

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

Сообщение vlad145 »

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

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

Сообщение vlad145 »

Alex62 писал(а):Есть пример. Он писался для Xmega A3, но это без разницы. Там только с координатами вывода где-то напутано. Разобраться я еще не успел, времени маловато. Но все работает. А заодно для энтузизистов программирования задача: там вывод организован как заполнение области 8х14 двумя цветами, текста и подложки. При попытке вывести текст поверх картинки, часть картинки закрашивается. Но если написать кусок кода используя процедуру вывода точки LCD_Pixel(), закрашивания можно избежать. Тогда надписи будут прямо поверх картинки
Ну а контроллер в LPH8836 такой HD66773 здесь http://www.watterott.net/misc/S65-LPH88_1.pdf

В Вашем проекте есть процедура вывода картинки: lcd_picture. Вос с ней у меня засада. Пытаюсь вывести картинку 40х40 следующим кодом:

lcd_picture(10,10,40,40,img_hard);

в результате получаю следующее:

function argument #5 of type 'unsigned char [806]' is incompatible with required parameter of type 'unsigned char'

Может это быть связано с программой конвертером? У image2lcd заголовок файла const unsigned char gImage_имя файла, а в функции указано img_hard.
Где я запутался?
Владимир
Аватара пользователя
Alex62
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Чт ноя 19, 2009 13:37:21
Откуда: Минск

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

Сообщение Alex62 »

Ну и еще кусочек кода для дисплея L2F50 от того же Сименса S65(и некоторых других Сименсов). Какой контроллер там я не знаю. Но код работает. Проверено. Единственное, опять про координаты вывода фигур. Там местами напутаны Х и У. Найдете где, исправте и отпишитесь. Я не успел. Может, конечно, и неприлично выкладывать кривоватый код, но когда я до него доберусь не знаю. А так кому то полезно окажется.
Вложения
dispL2F50forXMEGA.h
(16.74 КБ) 652 скачивания
FONTS.rar
Фонты
(1.98 КБ) 265 скачиваний
Общаюсь на ТЫ. Без расшаркиваний.
Аватара пользователя
Alex62
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Чт ноя 19, 2009 13:37:21
Откуда: Минск

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

Сообщение Alex62 »

Ну так картинка с разрядностью const unsigned char gImage_имя файла А в процедуре вывода
void lcd_picture(char x, char y, char w, char h,char rot, flash unsigned int *pic)
Выводится изображение в формате RGB 565 т.е. 2 байта.
Общаюсь на ТЫ. Без расшаркиваний.
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

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

Сообщение vlad145 »

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

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

Сообщение uzamar »

vlad145 писал(а):В Вашем проекте есть процедура вывода картинки: lcd_picture. Вос с ней у меня засада. Пытаюсь вывести картинку 40х40 следующим кодом:

lcd_picture(10,10,40,40,img_hard);

в результате получаю следующее:

function argument #5 of type 'unsigned char [806]' is incompatible with required parameter of type 'unsigned char'

Может это быть связано с программой конвертером? У image2lcd заголовок файла const unsigned char gImage_имя файла, а в функции указано img_hard.
Где я запутался?


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

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

Сообщение vlad145 »

Вот он.
Вложения
LPH8836.rar
(107.03 КБ) 372 скачивания
Владимир
Аватара пользователя
Alex62
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Чт ноя 19, 2009 13:37:21
Откуда: Минск

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

Сообщение Alex62 »

vlad145 писал(а):А поподробнее.

Ну, скажем, так.
Для подготовки картинки я пользую ImgConvert.
Так там есть окошки ФОРМАТ и ФАЙЛ.
Ставлю 16бит и Си.
Вложения
ImgConvert.rar
(463.58 КБ) 373 скачивания
img_hard.rar
(866 байт) 326 скачиваний
Последний раз редактировалось Alex62 Вт авг 23, 2011 12:02:36, всего редактировалось 1 раз.
Общаюсь на ТЫ. Без расшаркиваний.
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

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

Сообщение vlad145 »

Процедура вывода примерно такая?:
lcd_picture(10,10,32,16,img_hard);


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

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

Сообщение Alex62 »

vlad145 писал(а):Процедура вывода примерно такая?:
lcd_picture(10,10,32,16,img_hard);

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

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

Сообщение vlad145 »

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

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

Сообщение uzamar »

vlad145 писал(а):В Вашем проекте есть процедура вывода картинки: lcd_picture. Вос с ней у меня засада. Пытаюсь вывести картинку 40х40 следующим кодом:

lcd_picture(10,10,40,40,img_hard);

в результате получаю следующее:

function argument #5 of type 'unsigned char [806]' is incompatible with required parameter of type 'unsigned char'

Может это быть связано с программой конвертером? У image2lcd заголовок файла const unsigned char gImage_имя файла, а в функции указано img_hard.
Где я запутался?


параметров то 6 должно передаваться, а вы передаете 5.
Ответить

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