Проблема с выводом изображения LPH8731-3C
- Войдите на сайт для отправки комментариев
Ср, 27/06/2018 - 20:03
С фигурами и строками всё нормально.
проблема с выводом изображения, при размере картинки 20*20px, изображение рассыпается, при размере 30x20 px оно растянутое и выводится полосами.
Пример оригинала

void Send_Image (char x, char y, char width, char height, char *img, int rot)
{
char x1, y1;
switch (rot)
{
case 0: case 180:
for(y1=y; y1<(y+height); y1++)
{
SetArea( x, x1+(width-1), y1,y1);
for(x1=x; x1<x+width;x1++)
{
#ifdef _8_BIT_COLOR //(8-ми битовая цветовая палитра (256 цветов))
Send_to_lcd( DAT,pgm_read_byte(&(*img++))); //Данные SPI - задаём цвет пикселя
#else //(16-ти битовая цветовая палитра (65536 цветов))
Send_to_lcd( DAT, pgm_read_byte(&(*img++))); //отправляем данные по SPI
Send_to_lcd( DAT, pgm_read_byte(&(*img++)));
#endif
}
}
break;
};
}
[b]Массив изображения[/b]
const char fan_img[] PROGMEM ={
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x35, 0x97, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
[b]Функция задания оласти [/b]
void SetArea(char x1, char x2, char y1, char y2)
{
Send_to_lcd( CMD, 0x2A ); //задаем область по X
Send_to_lcd( DAT, x1 ); //начальная
Send_to_lcd( DAT, x2 ); //конечная
Send_to_lcd( CMD, 0x2B ); //задаем область по Y
Send_to_lcd( DAT, y1+1 ); //начальная (у этого контроллера Y отсчитывается от 1, а не от 0)
Send_to_lcd( DAT, y2+1 ); //конечная
Send_to_lcd( CMD, 0x2C ); //отправляем команду на начало записи в память и начинаем посылать данные
}
В чём может быть косяк в формате данных или алгоритме вывода изображения?
А ты как хотел? Что не так то, если размер картинки не соответствует размеру области вывода. Это не векторный рисунок, недостающие пиксели ему из аппроксимации высосать неоткуда.