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

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
igonzo
Открыл глаза
Сообщения: 44
Зарегистрирован: Вс июл 18, 2010 23:17:10

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

Сообщение igonzo »

по координате (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
 };
Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ!
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

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

Сообщение da-nie »

if (dat > 255)
return;


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

А собственно, в чём вопрос? Что не работает-то?
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Аватара пользователя
igonzo
Открыл глаза
Сообщения: 44
Зарегистрирован: Вс июл 18, 2010 23:17:10

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

Сообщение igonzo »

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

где то 50x40

а как и где их взять не знаю
Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ!
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

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

Сообщение da-nie »

Так нарисуйте цифры на листе в клетку. Вручную биты соберите в байты. Так раньше на спектруме спрайты кодировали без редактора. Это если красивый шрифт нужен.
Если же просто растянуть надо, тогда продублируйте каждый пискель по высоте и ширине нужное число раз в программе.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Аватара пользователя
igonzo
Открыл глаза
Сообщения: 44
Зарегистрирован: Вс июл 18, 2010 23:17:10

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

Сообщение igonzo »

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

с картинкой ??? :oops:
Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ!
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

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

Сообщение da-nie »

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

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


Не понятен вопрос. :oops:
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Аватара пользователя
igonzo
Открыл глаза
Сообщения: 44
Зарегистрирован: Вс июл 18, 2010 23:17:10

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

Сообщение igonzo »

Изображение

как его отобразить ?
Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ!
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

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

Сообщение da-nie »

Отображать в зависимости от того, как именно кодировалась картинка. Если это цвета RGB, то проходите по массиву и выводите эти цвета для каждой точки. Если там битовый (чёрно-белый) образ, тогда делайте развёртку каждого байта по 8 точек и так же выводите. Чтобы какой-то массив байт отобразить, надо знать, как он был закодирован.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Аватара пользователя
igonzo
Открыл глаза
Сообщения: 44
Зарегистрирован: Вс июл 18, 2010 23:17:10

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

Сообщение igonzo »

а пример можно как проходить по массиву и отображать каждую точку (а то уже с ума схожу) :oops: :oops: :oops:
Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ!
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

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

Сообщение da-nie »

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


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

for(unsigned short y=0;y<здесь размер по y;y++)
{
for(unsigned short x=0;x<здесь размер по x;x++)
{
unsigned short ptr=x+y*размер по x;
и здесь выводят точку цвета из массива по смещению ptr.
}
}
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»