vlad145 писал(а):Попробовал Ваш проект. Все запускается, кроме отображения русских букв. Вместо них мусор. Не подскажете, в чем косяк? Дисплей LPH8836, только вот какой контроллер я не смог найти.
Насколько я понял, просто нет массива русских букв.
vlad145 писал(а):Попробовал Ваш проект. Все запускается, кроме отображения русских букв. Вместо них мусор. Не подскажете, в чем косяк? Дисплей LPH8836, только вот какой контроллер я не смог найти.
uzamar писал(а):vlad145 писал(а):Попробовал Ваш проект. Все запускается, кроме отображения русских букв. Вместо них мусор. Не подскажете, в чем косяк? Дисплей LPH8836, только вот какой контроллер я не смог найти.
Насколько я понял, просто нет массива русских букв.
vlad145 писал(а):УРАААА! Получилось. Как оказалось нужно было прописать следующее:
if (c>127) {
c=c-57; //убираем отсутствующую часть таблицы ASCII
};
P.S. Осталось с графикой разобраться. Есть идеи как?
Alex62 писал(а):Есть пример. Он писался для Xmega A3, но это без разницы. Там только с координатами вывода где-то напутано. Разобраться я еще не успел, времени маловато. Но все работает. А заодно для энтузизистов программирования задача: там вывод организован как заполнение области 8х14 двумя цветами, текста и подложки. При попытке вывести текст поверх картинки, часть картинки закрашивается. Но если написать кусок кода используя процедуру вывода точки LCD_Pixel(), закрашивания можно избежать. Тогда надписи будут прямо поверх картинки
Ну а контроллер в LPH8836 такой HD66773 здесь http://www.hitachi.com/New/cnews/E/2002/0627/0627.pdf
Код: Выделить всё
else
{
lcd_write(bgcolor);
}Alex62 писал(а):Да нет. Выводить точку с коодинатами где есть буква. Где фон, там ничего не выводить. В том коде что есть подложку не закрашивать не получиться. Там используется процедура вывода области экрана. чем-то закрашивать все равно прийдеся
PS. Я не утверждаю что то что мной написано - написано оптимально. Прграммирую я недавно, и опыта еще маловато. Так что критику и принимаю, и приветствую. Заранее спасибо.
Код: Выделить всё
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);
}
}
}
}
Alex62 писал(а):Есть пример. Он писался для Xmega A3, но это без разницы. Там только с координатами вывода где-то напутано. Разобраться я еще не успел, времени маловато. Но все работает. А заодно для энтузизистов программирования задача: там вывод организован как заполнение области 8х14 двумя цветами, текста и подложки. При попытке вывести текст поверх картинки, часть картинки закрашивается. Но если написать кусок кода используя процедуру вывода точки LCD_Pixel(), закрашивания можно избежать. Тогда надписи будут прямо поверх картинки
Ну а контроллер в LPH8836 такой HD66773 здесь http://www.watterott.net/misc/S65-LPH88_1.pdf
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 писал(а):А поподробнее.
vlad145 писал(а):Процедура вывода примерно такая?:
lcd_picture(10,10,32,16,img_hard);
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.
Где я запутался?