Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

помогите вывести символ 16x16 пикселя на dg16080

Сб июл 07, 2012 18:40:22

по координате (x) 16 пикселей

по координате (y) только 8 пикселей

Изображение
----------
рисую так
----------
Код:
  void glcd_draw_simvol(unsigned int x,unsigned int y, char simvol)
 {
    int  dat,i,j;  // j- координата x; i-координата y
    dat = simvol;
   
    if (dat > 255)
        return;
   
    for (i = 0; i < 16; i++)
    {
        for (j = 0; j < 8; j++)
          {
            if (font_16x16[16*dat+i] & (1<<j))
                lcd_graphics_plot_pixel(x, y+j, 0xFF);
         else   
            lcd_graphics_plot_pixel(x, y+j, 0x00);
               
            //lcd_buz();
        }
        x++;
   }
 }

----------
символ 0
----------
Код:
 flash unsigned char font_16x16[] =
 {
   0x00,0x00,0x00,0xF8,0xFC,0x06,0x06,0x06,0x06,0x06,0x06,0xFC,0xF8,0x00,0x00,0x00, // 0
 };

Re: помогите вывести символ 16x16 пикселя на dg16080

Сб июл 07, 2012 20:22:28

if (dat > 255)
return;


Для типа char это работать не будет. Этот тип от -128 до 127.

А собственно, в чём вопрос? Что не работает-то?

Re: помогите вывести символ 16x16 пикселя на dg16080

Сб июл 07, 2012 20:25:12

хочу вывести большие цифры (для термометра)

где то 50x40

а как и где их взять не знаю

Re: помогите вывести символ 16x16 пикселя на dg16080

Сб июл 07, 2012 20:28:23

Так нарисуйте цифры на листе в клетку. Вручную биты соберите в байты. Так раньше на спектруме спрайты кодировали без редактора. Это если красивый шрифт нужен.
Если же просто растянуть надо, тогда продублируйте каждый пискель по высоте и ширине нужное число раз в программе.

Re: помогите вывести символ 16x16 пикселя на dg16080

Сб июл 07, 2012 21:10:40

а как выпихнуть массив

с картинкой ??? :oops:

Re: помогите вывести символ 16x16 пикселя на dg16080

Сб июл 07, 2012 21:49:51

а как выпихнуть массив

с картинкой ???


Не понятен вопрос. :oops:

Re: помогите вывести символ 16x16 пикселя на dg16080

Сб июл 07, 2012 21:53:45

Изображение

как его отобразить ?

Re: помогите вывести символ 16x16 пикселя на dg16080

Вс июл 08, 2012 08:55:56

Отображать в зависимости от того, как именно кодировалась картинка. Если это цвета RGB, то проходите по массиву и выводите эти цвета для каждой точки. Если там битовый (чёрно-белый) образ, тогда делайте развёртку каждого байта по 8 точек и так же выводите. Чтобы какой-то массив байт отобразить, надо знать, как он был закодирован.

Re: помогите вывести символ 16x16 пикселя на dg16080

Вс июл 08, 2012 11:27:58

а пример можно как проходить по массиву и отображать каждую точку (а то уже с ума схожу) :oops: :oops: :oops:

Re: помогите вывести символ 16x16 пикселя на dg16080

Вс июл 08, 2012 11:53:53

а пример можно как проходить по массиву и отображать каждую точку (а то уже с ума схожу)


Вы лучше сформулируйте правильно задачу. Это первое. Второе - дайте текстовый файл данных изображения с описанием формата.
А так - делают обычно так:

for(unsigned short y=0;y<здесь размер по y;y++)
{
for(unsigned short x=0;x<здесь размер по x;x++)
{
unsigned short ptr=x+y*размер по x;
и здесь выводят точку цвета из массива по смещению ptr.
}
}
Тема закрыта