Страница 12 из 73

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

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

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

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

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

Добавлено: Вт авг 23, 2011 08:49:11
vlad145
УРАААА! Получилось. Как оказалось нужно было прописать следующее:

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

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

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

Добавлено: Вт авг 23, 2011 09:09:45
uzamar
vlad145 писал(а):УРАААА! Получилось. Как оказалось нужно было прописать следующее:

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

P.S. Осталось с графикой разобраться. Есть идеи как?
Поздравляю!!! Примеров в нете полно для работы с графикой, гуглите.

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

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

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

Добавлено: Вт авг 23, 2011 09:42:45
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);
}
И кстати сдвиг бита лучше делать сдвигом, а не делением.

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

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

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

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

Добавлено: Вт авг 23, 2011 10:24:12
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-высота.
Прорисовка идет слева направо по столбцам.

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

Добавлено: Вт авг 23, 2011 11:20:10
vlad145
Огромное спасибо, вроде начало что-то получаться.

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

Добавлено: Вт авг 23, 2011 11:30:27
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.
Где я запутался?

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

Добавлено: Вт авг 23, 2011 11:32:43
Alex62
Ну и еще кусочек кода для дисплея L2F50 от того же Сименса S65(и некоторых других Сименсов). Какой контроллер там я не знаю. Но код работает. Проверено. Единственное, опять про координаты вывода фигур. Там местами напутаны Х и У. Найдете где, исправте и отпишитесь. Я не успел. Может, конечно, и неприлично выкладывать кривоватый код, но когда я до него доберусь не знаю. А так кому то полезно окажется.

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

Добавлено: Вт авг 23, 2011 11:42:14
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 байта.

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

Добавлено: Вт авг 23, 2011 11:44:46
vlad145
А поподробнее.

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

Добавлено: Вт авг 23, 2011 11:46:36
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.
Где я запутался?
Выложите ваш исходник.

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

Добавлено: Вт авг 23, 2011 11:48:55
vlad145
Вот он.

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

Добавлено: Вт авг 23, 2011 11:52:11
Alex62
vlad145 писал(а):А поподробнее.
Ну, скажем, так.
Для подготовки картинки я пользую ImgConvert.
Так там есть окошки ФОРМАТ и ФАЙЛ.
Ставлю 16бит и Си.

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

Добавлено: Вт авг 23, 2011 11:59:31
vlad145
Процедура вывода примерно такая?:
lcd_picture(10,10,32,16,img_hard);


Данная процедура выдает ту же ошибку.

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

Добавлено: Вт авг 23, 2011 12:17:42
Alex62
vlad145 писал(а):Процедура вывода примерно такая?:
lcd_picture(10,10,32,16,img_hard);
Типа да. Только я предупреждал, что с координатами напутал. Надо поэкспериментировать с Х и У внутри процедуры lcd_picture. Правда это только ориентацию и читаемость картинки затрагивает.

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

Добавлено: Вт авг 23, 2011 12:22:38
vlad145
будем искать...

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

Добавлено: Вт авг 23, 2011 13:07:17
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.