| Ср, 27.06.2018, 17:10 | Сообщение # 13
|
zoomeron
Постов: 23
ОК |
C cvavr разобрался.
Вот решил это всё переделать под arduino. С фигурами и строками всё нормально.
проблема с выводом изображения, при размере картинки 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 ); //отправляем команду на начало записи в память и начинаем посылать данные }
Где может быть косяк?
|
|