Arduino и дисплеи от сотиков мобильных телефонов

diger67
Offline
Зарегистрирован: 25.07.2015

forfrends пишет:

А разве нельзя эти же значения (2Ah и 2Bh) просто прописать в initlcd.h? А дальше пока программ выполняется они не изменятся. Все равно ведь при инициализации дисплея эти параметры прописываются. Или я что-то не понимаю? Может мы говорим об одном и том же?

Просто я хочу внести эти настройки в initlcd.h и больше к ним не возвращаться. Что бы в скетче не писать Х+24 а просто Х вывести точку в координатах 0,0 дисплея (24,0 - координаты памяти).

Если вариантов нет кроме ка всегда прибавлять +24, то их, я так понимаю, нужно прописать в UTFT.cpp? Где и как?

Если вы не будите использовать ротацию изображения (поворот вокруг оси на 90, 180, 270, 360 градусов) можите один раз инициализировать и забыть.

forfrends
Offline
Зарегистрирован: 24.02.2015

можете мне помочь с инициализацией? Вращать не планирую

diger67
Offline
Зарегистрирован: 25.07.2015

Попробуйте записать

2Ah (0x00), (0x18), (0x01), (0x3F)

2Bh (0x00), (0x18), (0x01), (0xDF)

вобщем идея такова если у вас изображение ушло за верхнюю границу, то прибавляем к переменной Y0 количество пикселей за областью видимости, так же поступаем и с X0,  оно у нас ушл за левый край, значит надо сместьть нулевой пиксел на количество скрытых пикселей. 

 

forfrends
Offline
Зарегистрирован: 24.02.2015

Я это уже пробовал - реакции никакой. Почему - не понятно.

Библиотеку брал здесь (в конце сообщения): http://arduino.ru/forum/apparatnye-voprosy/35-tft-lcd-krasnyi-megovskii-mega-2560-r3-resheno-kak-reshit-drugie#comment-204256

Использую эти иниты:

initlcd.h:

//case ILI9486:
	LCD_Write_COM(0x11);		// Sleep OUT
	delay(50);
 
	LCD_Write_COM(0xF2);		// ?????
	LCD_Write_DATA(0x1C);
	LCD_Write_DATA(0xA3);
	LCD_Write_DATA(0x32);
	LCD_Write_DATA(0x02);
	LCD_Write_DATA(0xb2);
	LCD_Write_DATA(0x12);
	LCD_Write_DATA(0xFF);
	LCD_Write_DATA(0x12);
	LCD_Write_DATA(0x00);

	LCD_Write_COM(0xF1);		// ?????
	LCD_Write_DATA(0x36);
	LCD_Write_DATA(0xA4);

	LCD_Write_COM(0xF8);		// ?????
	LCD_Write_DATA(0x21);
	LCD_Write_DATA(0x04);

	LCD_Write_COM(0xF9);		// ?????
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0x08);

	LCD_Write_COM(0xC0);		// Power Control 1
	LCD_Write_DATA(0x0d);
	LCD_Write_DATA(0x0d);

	LCD_Write_COM(0xC1);		// Power Control 2
	LCD_Write_DATA(0x43);
	LCD_Write_DATA(0x00);

	LCD_Write_COM(0xC2);		// Power Control 3
	LCD_Write_DATA(0x00);

	LCD_Write_COM(0xC5);		// VCOM Control
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0x48);

	LCD_Write_COM(0xB6);		// Display Function Control
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0x22);		// 0x42 = Rotate display 180 deg.
	LCD_Write_DATA(0x3B);

	LCD_Write_COM(0xE0);		// PGAMCTRL (Positive Gamma Control)
	LCD_Write_DATA(0x0f);
	LCD_Write_DATA(0x24);
	LCD_Write_DATA(0x1c);
	LCD_Write_DATA(0x0a);
	LCD_Write_DATA(0x0f);
	LCD_Write_DATA(0x08);
	LCD_Write_DATA(0x43);
	LCD_Write_DATA(0x88);
	LCD_Write_DATA(0x32);
	LCD_Write_DATA(0x0f);
	LCD_Write_DATA(0x10);
	LCD_Write_DATA(0x06);
	LCD_Write_DATA(0x0f);
	LCD_Write_DATA(0x07);
	LCD_Write_DATA(0x00);

	LCD_Write_COM(0xE1);		// NGAMCTRL (Negative Gamma Control)
	LCD_Write_DATA(0x0F);
	LCD_Write_DATA(0x38);
	LCD_Write_DATA(0x30);
	LCD_Write_DATA(0x09);
	LCD_Write_DATA(0x0f);
	LCD_Write_DATA(0x0f);
	LCD_Write_DATA(0x4e);
	LCD_Write_DATA(0x77);
	LCD_Write_DATA(0x3c);
	LCD_Write_DATA(0x07);
	LCD_Write_DATA(0x10);
	LCD_Write_DATA(0x05);
	LCD_Write_DATA(0x23);
	LCD_Write_DATA(0x1b);
	LCD_Write_DATA(0x00); 

	LCD_Write_COM(0x20);		// Display Inversion OFF
	LCD_Write_DATA(0x00);//C8 	 

	LCD_Write_COM(0x36);		// Memory Access Control
	LCD_Write_DATA(0x0A);

	LCD_Write_COM(0x3A);		// Interface Pixel Format
	LCD_Write_DATA(0x55); 

	LCD_Write_COM(0x2A);		// Column Addess Set
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0x18);
	LCD_Write_DATA(0x01);
	LCD_Write_DATA(0xDF);

	LCD_Write_COM(0x002B);		// Page Address Set
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0x18);
	LCD_Write_DATA(0x01);
	LCD_Write_DATA(0x3f);	 
	delay(50);
	LCD_Write_COM(0x0029);		// Display ON
	LCD_Write_COM(0x002C);		// Memory Write
	//break;

setxy.h:

//case ILI9486:
	LCD_Write_COM(0x2a); 
	LCD_Write_DATA(x1>>8);
	LCD_Write_DATA(x1);
	LCD_Write_DATA(x2>>8);
	LCD_Write_DATA(x2);
	LCD_Write_COM(0x2b); 
	LCD_Write_DATA(y1>>8);
	LCD_Write_DATA(y1);
	LCD_Write_DATA(y2>>8);
	LCD_Write_DATA(y2);	
	LCD_Write_COM(0x2c); 
	
//	break;

Мне кажется что настройки сбиваются именно в файле setxy.h

diger67
Offline
Зарегистрирован: 25.07.2015

forfrends пишет:

Я это уже пробовал - реакции никакой. Почему - не понятно.

Библиотеку брал здесь (в конце сообщения): http://arduino.ru/forum/apparatnye-voprosy/35-tft-lcd-krasnyi-megovskii-mega-2560-r3-resheno-kak-reshit-drugie#comment-204256

Использую эти иниты:

initlcd.h:

//case ILI9486:
	LCD_Write_COM(0x11);		// Sleep OUT
	delay(50);
 
	LCD_Write_COM(0xF2);		// ?????
	LCD_Write_DATA(0x1C);
	LCD_Write_DATA(0xA3);
	LCD_Write_DATA(0x32);
	LCD_Write_DATA(0x02);
	LCD_Write_DATA(0xb2);
	LCD_Write_DATA(0x12);
	LCD_Write_DATA(0xFF);
	LCD_Write_DATA(0x12);
	LCD_Write_DATA(0x00);

	LCD_Write_COM(0xF1);		// ?????
	LCD_Write_DATA(0x36);
	LCD_Write_DATA(0xA4);

	LCD_Write_COM(0xF8);		// ?????
	LCD_Write_DATA(0x21);
	LCD_Write_DATA(0x04);

	LCD_Write_COM(0xF9);		// ?????
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0x08);

	LCD_Write_COM(0xC0);		// Power Control 1
	LCD_Write_DATA(0x0d);
	LCD_Write_DATA(0x0d);

	LCD_Write_COM(0xC1);		// Power Control 2
	LCD_Write_DATA(0x43);
	LCD_Write_DATA(0x00);

	LCD_Write_COM(0xC2);		// Power Control 3
	LCD_Write_DATA(0x00);

	LCD_Write_COM(0xC5);		// VCOM Control
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0x48);

	LCD_Write_COM(0xB6);		// Display Function Control
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0x22);		// 0x42 = Rotate display 180 deg.
	LCD_Write_DATA(0x3B);

	LCD_Write_COM(0xE0);		// PGAMCTRL (Positive Gamma Control)
	LCD_Write_DATA(0x0f);
	LCD_Write_DATA(0x24);
	LCD_Write_DATA(0x1c);
	LCD_Write_DATA(0x0a);
	LCD_Write_DATA(0x0f);
	LCD_Write_DATA(0x08);
	LCD_Write_DATA(0x43);
	LCD_Write_DATA(0x88);
	LCD_Write_DATA(0x32);
	LCD_Write_DATA(0x0f);
	LCD_Write_DATA(0x10);
	LCD_Write_DATA(0x06);
	LCD_Write_DATA(0x0f);
	LCD_Write_DATA(0x07);
	LCD_Write_DATA(0x00);

	LCD_Write_COM(0xE1);		// NGAMCTRL (Negative Gamma Control)
	LCD_Write_DATA(0x0F);
	LCD_Write_DATA(0x38);
	LCD_Write_DATA(0x30);
	LCD_Write_DATA(0x09);
	LCD_Write_DATA(0x0f);
	LCD_Write_DATA(0x0f);
	LCD_Write_DATA(0x4e);
	LCD_Write_DATA(0x77);
	LCD_Write_DATA(0x3c);
	LCD_Write_DATA(0x07);
	LCD_Write_DATA(0x10);
	LCD_Write_DATA(0x05);
	LCD_Write_DATA(0x23);
	LCD_Write_DATA(0x1b);
	LCD_Write_DATA(0x00); 

	LCD_Write_COM(0x20);		// Display Inversion OFF
	LCD_Write_DATA(0x00);//C8 	 

	LCD_Write_COM(0x36);		// Memory Access Control
	LCD_Write_DATA(0x0A);

	LCD_Write_COM(0x3A);		// Interface Pixel Format
	LCD_Write_DATA(0x55); 

	LCD_Write_COM(0x2A);		// Column Addess Set
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0x18);
	LCD_Write_DATA(0x01);
	LCD_Write_DATA(0xDF);

	LCD_Write_COM(0x002B);		// Page Address Set
	LCD_Write_DATA(0x00);
	LCD_Write_DATA(0x18);
	LCD_Write_DATA(0x01);
	LCD_Write_DATA(0x3f);	 
	delay(50);
	LCD_Write_COM(0x0029);		// Display ON
	LCD_Write_COM(0x002C);		// Memory Write
	//break;

setxy.h:

//case ILI9486:
	LCD_Write_COM(0x2a); 
	LCD_Write_DATA(x1>>8);
	LCD_Write_DATA(x1);
	LCD_Write_DATA(x2>>8);
	LCD_Write_DATA(x2);
	LCD_Write_COM(0x2b); 
	LCD_Write_DATA(y1>>8);
	LCD_Write_DATA(y1);
	LCD_Write_DATA(y2>>8);
	LCD_Write_DATA(y2);	
	LCD_Write_COM(0x2c); 
	
//	break;

Мне кажется что настройки сбиваются именно в файле setxy.h

Не кажется, а так и есть. Вы используя setxy.h записываете новые значения в регистры 2Ah и 2Bh поверх ранее записанных.

slider
Offline
Зарегистрирован: 17.06.2014

чтоб пока не разбираться с Partial Area 0x30    Vertical Scrolling Definition 0x33h

1. попробуйте тогда пока оставить  disp_x_size = 319 ;   disp_y_size = 479  ; (и для всех остальных опытов что ниже тоже) чтоб  был математический запас. и запустите пример UTFT_Demo_480x320, какая картинка будет ? должна на весь экран развернуться. В таком варианте и можно  в своем скетче , везде к нужной координате поприбавлять +24.

forfrends пишет:

А разве нельзя эти же значения (2Ah и 2Bh) просто прописать в initlcd.h?

А дальше пока программ выполняется они не изменятся. 

2. -это ничего не даст, ибо при рисовании через них рисуется. Поэтому в случае с диспом ili9327 и меньшей матрицы мне помогло добавить в setxy.h вверху строчку y1=y1+80; , попробуйте y1=y1+24;  ,

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

http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov#comment-146701 и дальше.

3.  Думаю вы заметили, что в ините что вы используете , там 36 регистр почемуто описывается 2 раза , поэтому если меняли вверху , то нижний его переизменил. Менять надо нижний. LCD_Write_COM(0x36); // Memory Access Control  LCD_Write_DATA(0x0A);  , а именно вместо 0x0A ставите 0b00000000 и пробовать  подставлять 1 . Если что попробуйте в минимальном ините это делать ! ! ! ili9327_8 ili9488 minimal init Explay N1.rar .   

Memory Access Control  0x36

  0    0   1   1     0     1   1  0 
 
 MY MX MV ML BGR MH X X                  //  M -  Mirror - зеркалирование
 
4. оставьте в 0x36 регистре значение 0b00000000 ! ну иль BGR правильную цветопередачу 0b00001000. И меняйте направление сканирования в Display Function Control    0xb6    (этот регистр применяется ещё в ряде контроллеров)
т.е. у вас в ините записано
LCD_Write_COM(0xB6); // Display Function Control
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x22); // 0x42 = Rotate display 180 deg.
LCD_Write_DATA(0x3B);
 
а именно , во втором параметре - это  LCD_Write_DATA(0x22); // 0x42 = Rotate display 180 deg. , в двоичном коде это 0b001000010  , пробовать менять надо  0 GS SS SM ISC[3:0]  это 6,5,4 биты. Т.е. подставляйте 
0b000000010
0b000100010
0b010000010
и сочетание едениц в 6,5,4 битах
0b001100010
0b010100010
0b011000010
0b011100010
//биты S -  Scan - сканирование

5. попробуйте пункт.4 с настройками   disp_x_size = 271 ;   disp_y_size = 479 ;  и примером UTFT_Demo_480x272 

forfrends
Offline
Зарегистрирован: 24.02.2015

В общем результат:

Дисплей от китайского Samsung S5, чуть меньше 4", разрешение 480х272.

Еще фото дисплея: http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=1#comment-168028

Надпись на шлейфе дисплея:

BL-39Q127A0-A
YSD?0018VB дальше надпись не читаема
Всего 24 пина. Распиновка:
1、LED-
2、LED+(3.3V)
3、VSS
4、VCC
5、VDD
6、NC
7、CS
8、RESET
9、DC
10、WR
11、RD
12、DB17
13、DB16
14、DB15
15、DB14
16、DB13
17、DB12
18、DB11
19、DB10
20、VSS
21、Татч
22、Татч
23、Татч
24、Татч
VDD и VCC = 3.3V
 
Подключение диаплея к АрдуиноМега:
Дисплей:    Пин Ардуино:
1?LED-       GND
2?LED+      3.3V
3?VSS         GND
4?VCC        3.3V
5?VDD        3.3V
6?NC -
7?CS            40
8?RESET    41
9?DC           38
10?WR        39
11?RD         42
12?D17       29
13?D16       28
14?D15       27
15?D14       26
16?D13       25
17?D12       24
18?D11       23
19?D10       22

Читалки выдали странную инфу:

start... 
register 00h for ILI9320(9320), ILI9325(9325), ILI9326(9326), SSD1289(1289,8989)
                 HX8347D(047),  HX8347G(075),  HX8352A(052),  HX8352B(065), HX8352C(072)
                 R61509V(B509), R61505W(C505), SPFD5420A(5408) 
register 0
1 Parameter   0
2 Parameter   0
3 Parameter   0
4 Parameter   0
5 Parameter   0
6 Parameter   0

register EFh for ILI9327(0 02 04 93 27 FF),   
register EF
1 Parameter   0
2 Parameter   0
3 Parameter   0
4 Parameter   0
5 Parameter   0
6 Parameter   0

register BFh for ILI9481(0 0 94 81 xx xx)  
register BF
1 Parameter   FF
2 Parameter   74
3 Parameter   0
4 Parameter   0
5 Parameter   0
6 Parameter   0

register D3h for ILI9488(0 0 94 88 xx xx)   
register D3
1 Parameter   0
2 Parameter   0
3 Parameter   86
4 Parameter   0
5 Parameter   0
6 Parameter   0

register 04h for HX8357(?DA-DC), HX8353(?80-85),   
register 4
1 Parameter   54
2 Parameter   66
3 Parameter   0
4 Parameter   0
5 Parameter   0
6 Parameter   0
start... 

      
               1p 2p 3p 4p 5p 6p 7p 8parameter(byte)
      
register 00    00 00 00 00 00 00 00 00  *
      
register 00    00 00 00 00 00 00 00 00  *
register 01    00 00 00 00 00 00 00 00
register 02    00 00 00 00 00 00 00 00
register 03    00 00 00 00 00 00 00 00
register 04    54 66 00 00 00 00 00 00  *
register 05    00 00 00 00 00 00 00 00
register 06    00 00 00 00 00 00 00 00
register 07    00 00 00 00 00 00 00 00
register 08    00 00 00 00 00 00 00 00
register 09    00 00 00 00 00 00 00 00
register 0A    08 08 08 08 08 08 08 08
register 0B    00 00 00 00 00 00 00 00
register 0C    66 66 66 66 66 66 66 66
register 0D    00 00 00 00 00 00 00 00
register 0E    00 00 00 00 00 00 00 00
register 0F    00 00 00 00 00 00 00 00
register 10    00 00 00 00 00 00 00 00
register 11    00 00 00 00 00 00 00 00
register 12    00 00 00 00 00 00 00 00
register 13    00 00 00 00 00 00 00 00
register 14    00 00 00 00 00 00 00 00
register 15    00 00 00 00 00 00 00 00
register 16    00 00 00 00 00 00 00 00
register 17    00 00 00 00 00 00 00 00
register 18    00 00 00 00 00 00 00 00
register 19    00 00 00 00 00 00 00 00
register 1A    00 00 00 00 00 00 00 00
register 1B    00 00 00 00 00 00 00 00
register 1C    00 00 00 00 00 00 00 00
register 1D    00 00 00 00 00 00 00 00
register 1E    00 00 00 00 00 00 00 00
register 1F    00 00 00 00 00 00 00 00
register 20    00 00 00 00 00 00 00 00
register 21    00 00 00 00 00 00 00 00
register 22    00 00 00 00 00 00 00 00
register 23    00 00 00 00 00 00 00 00
register 24    00 00 00 00 00 00 00 00
register 25    00 00 00 00 00 00 00 00
register 26    00 00 00 00 00 00 00 00
register 27    00 00 00 00 00 00 00 00
register 28    00 00 00 00 00 00 00 00
register 29    00 00 00 00 00 00 00 00
register 2A    00 00 00 01 00 00 00 00
register 2B    00 00 00 01 00 00 00 00
register 2C    00 00 00 00 00 00 00 00
register 2D    00 00 00 00 00 00 00 00
register 2E    00 68 00 00 00 F0 70 00
register 2F    00 00 00 00 00 00 00 00
register 30    00 00 00 01 00 00 00 00
register 31    00 00 00 00 00 00 00 00
register 32    00 00 00 00 00 00 00 00
register 33    00 00 00 01 00 00 00 00
register 34    00 00 00 00 00 00 00 00
register 35    00 00 00 00 00 00 00 00
register 36    00 00 00 00 00 00 00 00
register 37    00 00 00 00 00 00 00 00
register 38    00 00 00 00 00 00 00 00
register 39    00 00 00 00 00 00 00 00
register 3A    66 66 66 66 66 66 66 66
register 3B    00 00 00 00 00 00 00 00
register 3C    00 00 00 00 00 00 00 00
register 3D    00 00 00 00 00 00 00 00
register 3E    00 68 00 00 00 00 F0 70
register 3F    00 00 00 00 00 00 00 00
register 40    00 00 00 00 00 00 00 00
register 41    00 00 00 00 00 00 00 00
register 42    00 00 00 00 00 00 00 00
register 43    00 00 00 00 00 00 00 00
register 44    00 00 00 00 00 00 00 00
register 45    00 00 00 00 00 00 00 00
register 46    00 00 00 00 00 00 00 00
register 47    00 00 00 00 00 00 00 00
register 48    00 00 00 00 00 00 00 00
register 49    00 00 00 00 00 00 00 00
register 4A    00 00 00 00 00 00 00 00
register 4B    00 00 00 00 00 00 00 00
register 4C    00 00 00 00 00 00 00 00
register 4D    00 00 00 00 00 00 00 00
register 4E    00 00 00 00 00 00 00 00
register 4F    00 00 00 00 00 00 00 00
register 50    00 00 00 00 00 00 00 00
register 51    00 00 00 00 00 00 00 00
register 52    00 00 00 00 00 00 00 00
register 53    00 00 00 00 00 00 00 00
register 54    00 00 00 00 00 00 00 00
register 55    00 00 00 00 00 00 00 00
register 56    00 00 00 00 00 00 00 00
register 57    00 00 00 00 00 00 00 00
register 58    00 00 00 00 00 00 00 00
register 59    00 00 00 00 00 00 00 00
register 5A    00 00 00 00 00 00 00 00
register 5B    00 00 00 00 00 00 00 00
register 5C    00 00 00 00 00 00 00 00
register 5D    00 00 00 00 00 00 00 00
register 5E    00 00 00 00 00 00 00 00
register 5F    00 00 00 00 00 00 00 00
register 60    00 00 00 00 00 00 00 00
register 61    00 00 00 00 00 00 00 00
register 62    00 00 00 00 00 00 00 00
register 63    00 00 00 00 00 00 00 00
register 64    00 00 00 00 00 00 00 00
register 65    00 00 00 00 00 00 00 00
register 66    00 00 00 00 00 00 00 00
register 67    00 00 00 00 00 00 00 00
register 68    00 00 00 00 00 00 00 00
register 69    00 00 00 00 00 00 00 00
register 6A    00 00 00 00 00 00 00 00
register 6B    00 00 00 00 00 00 00 00
register 6C    00 00 00 00 00 00 00 00
register 6D    00 00 00 00 00 00 00 00
register 6E    00 00 00 00 00 00 00 00
register 6F    00 00 00 00 00 00 00 00
register 70    00 00 00 00 00 00 00 00
register 71    00 00 00 00 00 00 00 00
register 72    00 00 00 00 00 00 00 00
register 73    00 00 00 00 00 00 00 00
register 74    00 00 00 00 00 00 00 00
register 75    00 00 00 00 00 00 00 00
register 76    00 00 00 00 00 00 00 00
register 77    00 00 00 00 00 00 00 00
register 78    00 00 00 00 00 00 00 00
register 79    00 00 00 00 00 00 00 00
register 7A    00 00 00 00 00 00 00 00
register 7B    00 00 00 00 00 00 00 00
register 7C    00 00 00 00 00 00 00 00
register 7D    00 00 00 00 00 00 00 00
register 7E    00 00 00 00 00 00 00 00
register 7F    00 00 00 00 00 00 00 00
register 80    00 00 00 00 00 00 00 00
register 81    00 00 00 00 00 00 00 00
register 82    00 00 00 00 00 00 00 00
register 83    00 00 00 00 00 00 00 00
register 84    00 00 00 00 00 00 00 00
register 85    00 00 00 00 00 00 00 00
register 86    00 00 00 00 00 00 00 00
register 87    00 00 00 00 00 00 00 00
register 88    00 00 00 00 00 00 00 00
register 89    00 00 00 00 00 00 00 00
register 8A    00 00 00 00 00 00 00 00
register 8B    00 00 00 00 00 00 00 00
register 8C    00 00 00 00 00 00 00 00
register 8D    00 00 00 00 00 00 00 00
register 8E    00 00 00 00 00 00 00 00
register 8F    00 00 00 00 00 00 00 00
register 90    00 00 00 00 00 00 00 00
register 91    00 00 00 00 00 00 00 00
register 92    00 00 00 00 00 00 00 00
register 93    00 00 00 00 00 00 00 00
register 94    00 00 00 00 00 00 00 00
register 95    00 00 00 00 00 00 00 00
register 96    00 00 00 00 00 00 00 00
register 97    00 00 00 00 00 00 00 00
register 98    00 00 00 00 00 00 00 00
register 99    00 00 00 00 00 00 00 00
register 9A    00 00 00 00 00 00 00 00
register 9B    00 00 00 00 00 00 00 00
register 9C    00 00 00 00 00 00 00 00
register 9D    00 00 00 00 00 00 00 00
register 9E    00 00 00 00 00 00 00 00
register 9F    00 00 00 00 00 00 00 00
register A0    00 00 00 00 00 00 00 00
register A1    00 00 00 00 00 00 00 00
register A2    00 00 00 00 00 00 00 00
register A3    00 00 00 00 00 00 00 00
register A4    00 00 00 00 00 00 00 00
register A5    00 00 00 00 00 00 00 00
register A6    00 00 00 00 00 00 00 00
register A7    00 00 00 00 00 00 00 00
register A8    00 00 00 00 00 00 00 00
register A9    00 00 00 00 00 00 00 00
register AA    00 00 00 00 00 00 00 00
register AB    00 00 00 00 00 00 00 00
register AC    00 00 00 00 00 00 00 00
register AD    00 00 00 00 00 00 00 00
register AE    00 00 00 00 00 00 00 00
register AF    00 00 00 00 00 00 00 00
register B0    00 00 00 00 00 00 00 00
register B1    B0 01 00 00 00 00 00 00
register B2    00 00 11 00 00 00 00 00
register B3    00 00 15 00 00 00 00 00
register B4    00 00 00 00 00 00 00 00
register B5    02 02 02 0A 00 00 00 00
register B6    02 02 02 00 00 00 00 00
register B7    06 06 06 06 06 06 06 06
register B8    00 00 00 00 00 00 00 00
register B9    00 00 00 00 00 00 00 00
register BA    00 00 00 00 00 00 00 00
register BB    00 00 00 00 00 00 00 00
register BC    00 00 00 00 00 00 00 00
register BD    00 00 00 00 00 00 00 00
register BE    00 00 00 00 00 00 00 00
register BF    FF 14 00 00 00 00 00 00  *
register C0    0E 00 00 00 00 00 00 00
register C1    04 04 00 00 00 00 00 00
register C2    33 33 33 33 33 33 33 33
register C3    33 33 33 33 33 33 33 33
register C4    33 33 33 33 33 33 33 33
register C5    00 00 00 00 00 00 00 00
register C6    00 00 00 00 00 00 00 00
register C7    00 00 00 00 00 00 00 00
register C8    00 00 00 00 00 00 00 00
register C9    00 00 00 00 00 00 00 00
register CA    00 00 00 00 00 00 00 00
register CB    00 00 00 00 00 00 00 00
register CC    00 00 00 00 00 00 00 00
register CD    00 00 00 00 00 00 00 00
register CE    00 00 00 00 00 00 00 00
register CF    00 00 00 00 00 00 00 00
register D0    00 00 00 00 00 00 00 00
register D1    00 00 00 00 00 00 00 00
register D2    00 00 00 00 00 00 00 00
register D3    00 00 86 00 00 00 00 00  *
register D4    00 00 00 00 00 00 00 00
register D5    00 00 00 00 00 00 00 00
register D6    00 00 00 00 00 00 00 00
register D7    00 00 00 00 00 00 00 00
register D8    00 00 00 00 00 00 00 00
register D9    00 00 00 00 00 00 00 00
register DA    54 54 54 54 54 54 54 54
register DB    80 80 80 80 80 80 80 80
register DC    66 66 66 66 66 66 66 66
register DD    00 00 00 00 00 00 00 00
register DE    00 00 00 00 00 00 00 00
register DF    00 00 00 00 00 00 00 00
register E0    00 00 07 05 08 00 07 05
register E1    00 00 00 00 00 00 00 00
register E2    00 00 00 00 00 00 00 00
register E3    00 00 00 00 00 00 00 00
register E4    00 00 00 00 00 00 00 00
register E5    00 00 00 00 00 00 00 00
register E6    00 00 00 00 00 00 00 00
register E7    00 00 00 00 00 00 00 00
register E8    00 00 00 00 00 00 00 00
register E9    00 00 00 00 00 00 00 00
register EA    00 00 00 00 00 00 00 00
register EB    00 00 00 00 00 00 00 00
register EC    00 00 00 00 00 00 00 00
register ED    00 00 00 00 00 00 00 00
register EE    00 00 00 00 00 00 00 00
register EF    00 00 00 00 00 00 00 00  *
register F0    00 00 00 00 00 00 00 00
register F1    00 00 00 00 00 00 00 00
register F2    00 00 00 00 00 00 00 00
register F3    00 00 00 00 00 00 00 00
register F4    00 00 00 00 00 00 00 00
register F5    00 00 00 00 00 00 00 00
register F6    00 00 00 00 00 00 00 00
register F7    00 00 00 00 00 00 00 00
register F8    00 00 00 00 00 00 00 00
register F9    00 00 00 00 00 00 00 00
register FA    00 00 00 00 00 00 00 00
register FB    00 00 00 00 00 00 00 00
register FC    00 00 00 00 00 00 00 00
register FD    00 00 00 00 00 00 00 00
register FE    00 00 00 00 00 00 00 00
register FF    01 01 00 00 00 00 00 00

 

Из этого было немного сложно понять что за контроллер стоит. Дисплей отложил в сторону на некоторое время. Когда вновь взялся за него, то неправильно собрал на макетке резисторные делители (дело было ночью, спать хотелось ужасно...) и подал на дасплей 4.6 вольт вместо 3.3в. и так по всем пинам... НО! Читалка как-то "достучалась" до контроллера и дисплей выдал немного другую инфу:

Смотрите здесь и далее: http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=2#comment-216113

Контроллер оказался ILI9486 8 бит, но к нему так же подходят иниты от ILI9488. Но появилась проблема: размещение экрана дисплея относительно памяти кристала смещено в центр на 24 пикселя по Х. В результате изображение смещено на -24 пикселя. Для инитов от ILI9488 изображение еще оказалось в зеркальном отображении, но это легко исправилось в initlcd.h редактированием регистра 36h:

LCD_Write_COM(0x36);
LCD_Write_DATA(0b00011100);

В UTFT.cpp нужно прописать следующее разрешение дисплея:

disp_x_size = 295; // 271+24 пикселя для смещения в видимую область.
disp_y_size = 479;
"Пляски с бубном" и молитвы на даташит не помогли решить проблему сдвига изображения. Смещение по Х можно решить 2-мя путями:

1) дописать в самом начале setxy.h следующие строчки строчки:

x1=x1+24;
x2=x2+24;
Вариант самый простой, так как тогда х0,y0 и будет x0,y0 а не x-24,y0. Но это добавляет работы для ардуины. Соответственно замедляет скорость вывода на дисплей.
 
2) Не трогать setxy.h, а просто в самом скетче все координаты вводить с поправкой икса на +24 то есть вместо 
myGLCD.drawPixel(10, 10);

Нужно писать:

myGLCD.drawPixel(34, 10);

Вызов инита:

UTFT myGLCD(31,...        );

Ссылка на подправленную библиотеку (в конце сообщения): http://arduino.ru/forum/apparatnye-voprosy/35-tft-lcd-krasnyi-megovskii-mega-2560-r3-resheno-kak-reshit-drugie#comment-204256

 

diger67
Offline
Зарегистрирован: 25.07.2015

slider, не вводите в заблуждение человека. И всех остальных. Регистры 2Ah и 2Bh используются для установки рамера скрина. Размещать его можно и в ините, и в setxy, и в тексте скетча, а в правильных компиляторах main.c. Главное помнить, каждый раз когда вы задвете новые параметры высоты столбца и ширины скрина старые параметры становяться невалидными, а попросту поверх них вы записываете новые размеры рабочей области экрана. Так можно реализовать сначала заполнение всего экрана обоями, а потом указав меньшую область выводить в нее например слайдшой ввиде динамического изображения (псевдо видео). Делается это зачастую из за недостаточного RAM на борту м/к и низкого FPS, но дает возможность использовать модифицированную функцию последовательного заполнения выбранной области, выводя картинку за картинкой, создавая илюзию видео. такимже образом можно выводить эконки заданного размера снизив нагрузку на м/к и повысив скорость вывода.

forfrends
Offline
Зарегистрирован: 24.02.2015

diger67, это и так понятно, что данный дисплей работает так. Заблуждения нет, а просто процесс изучения дисплея. Проблемой было то что вроде как в даташите можно "сместить" область рабочей памяти и сделать константой (регистры 2Ah, 2Bh и 2Ch), а на деле это все то что вы описали.

Кстати по даташиту дисплей можно подключить по SPI. Режим работы задается подтягиванием "ножек" IM2, IM1 и IM0 к 0 или 1. Попробую на шлейфе их найти. О результатах (если таковые будут) отпишусь.

forfrends
Offline
Зарегистрирован: 24.02.2015

Прошу вашего взгляда на картинку и подсказки, правильно ли я нашел пины IM0, IM1 и IM2:

Дорожка справа от IM2 это RESET

IM2 подключен к земле

IM0, IM1 - к VDD

Я так понимаю, нужно разрезать дорожку IM2 и кинуть ее на VDD для активации 4-line SPI (3-line SPI не получится так как IM0, IM1 замкнуты)

diger67
Offline
Зарегистрирован: 25.07.2015

Так сказать сложно, я покупал tft панели, там просто были выведены пины на разъем, а коммутацию делал на плате. Разбирая при изучении готовые шилды сталкивался с размещением перемычек прямо на шлейфе. То что вы нашли, не факт то что это пины конфигурации.

slider
Offline
Зарегистрирован: 17.06.2014

здоорово, что победили дисп. :))) хороший, большой :)

forfrends пишет:

Прошу вашего взгляда на картинку и подсказки, правильно ли я нашел пины IM0, IM1 и IM2:

....

Я так понимаю, нужно разрезать дорожку IM2 и кинуть ее на VDD для активации 4-line SPI (3-line SPI не получится так как IM0, IM1 замкнуты)

Серьезная заява :) . пока не приходилось их включать по SPI. дорожки im0-2 приходилось резать иголкой от шприца, чтоб с 16 на 8 бит.  Вам только к SDA надо еще подключиться :

// при размещении картинки можно выбрать меньшее разрешение к примеру 320x240 , картинки будут кликабельны.

         

в даташите написано что в других режимах его можно подключать на + или - . А в SPI режиме он нужен.

По скорости аппаратный SPI примерно равен бывшему 8ми битному режиму (из тестов на 8bit и SPI шилдах 320x240). Так что скорость рисования скажем будет таже.  В случае применения 100р плат STM32 или ESP8266 будет гораздо быстрее, вся инфа по подключению к ним SPI дисплеев есть в инете и ютубе.

Здесь http://arduino.ru/forum/apparatnye-voprosy/28-spi-tft-podklyuchenie#comment-160676 описал либы  софтового и аппаратного SPI . инит от ili9341 может подойти. (можете сейчас проверить , скопировать команды инита в initlcd.h от 9341 в 9486 , только case и break  должны там закоментированы ).

В даташите ili9486 указано что в SPI режиме WRX это SCL . В либах обычно прокоментировано какие пины куда. mosi miso sck для аппаратного однозначны, а другие можно переназначать на какие пожелаете.

вот еще гляньте http://arduino.ru/forum/apparatnye-voprosy/18-tft-podklyuchenie-problema-pomogite#comment-198429 что на некоторых шилдах так и пишут SDA,  SCL , ...  http://ru.aliexpress.com/item/New-Stylish-1-8-inch-128-x-160-Pixels-For-Arduino-TFT-LCD-Display-Module-Breakout/32612697845.html 

или так SDO(miso), SDI (mosi), SCK, D/C, Reset, CS  http://ru.aliexpress.com/item/Smart-Electronics-2-2-Inch-240-320-Dots-SPI-TFT-LCD-Serial-Port-Module-Display-ILI9341/32597442041.html 

Завести такой большой дисп на SPI было б круто.  На Али распространенные ардуиновские SPI шилды в основном 1.8 2.2 2.8" . замерьте заранее за сколько времени делаются тест Адафруита .

//  сейчас у меня шилды 2,2" и 2,8" SPI на аппаратном, поставил резистивные делители  с 5в на 3,3в уровней    1,5ком+2,2ком   . и   2,2ком+4,7ком тож работают   (первый резистор - вход 5в уровня, средняя точка - выход 3,3в уровня , второй резистор на минус) , но больше по номиналу верхний резистор не надо брать , иначе форма сигналов будет заваливаться. Быстрые распространенные дешевые платы stm32 esp8266 уже сами по себе на 3,3в , там все напрямую, хотя я бы поставил последовательно 33-100ом , мало ли при переходные процессы, чтоб выхода не уперлись друг в друга.   

//// по  п.4 и п.5 каков результат был? 

 

 

forfrends
Offline
Зарегистрирован: 24.02.2015

Да, читал что SDA может быть подключен к + или -. Похоже что это он и есть. Запитан к "GND"  :

Надо будет перечитать все что есть по подключению по SPI, только потом буду дорожки резать. Не хочется ковырять бисплей незная зачем. Спасибо за подсказку - иглой от шприца, а то я думал чем бы его... 

Стандартный тест UTFT\examples\Arduino (AVR)\UTFT_Demo_480x272 делает на 8 битах за 45300 мс. Это при использовании x1=x1+24; в setxy.h. Думаю если это убрать и скоректировать х в самом скетче, то скорость чуть подрастет. Надо будет еще резисторы поискать, а то у меня все на макетке и использую сейчас резисторы 10 и 20 кОм. Как вариант, это все потом можно будет кинуть на Ардуино ДУЕ (есть у меня) но она для меня пока темный лес. Многие библиотеки на ней не работают или работают с глюками. Так пробовал сконектить МЕГА и ДУЕ через модули nrf24l01 и ничего не вышло. Самое лучшее чего смог добиться от ДУЕ - приема сигнала, а передавать не передавала. Пробовал все возможные библиотеки.

Я только учусь программированию.

По пунктам 4 и 5: записи регистра 0x36 имеет результат, но не особо. Если коротко, то: поворот на 90, отзеркаливание, цветопередача. Больше эффектов нет. Ну кроме что этим регистром можно подкорректировать запуск инита от ili9488. Регистр 0x22 - почти тот же эффект. Бит SM "растягивает" изображение по "y" с пропуском пикселей, остальные биты - повороты, отражение... Пересмотрел еще раз даташит - смещение по Х нигде не нашел, по У - сколько угодно, те же Partial Area 0x30  и  Vertical Scrolling Definition 0x33h. Ну да ладно, буду в скетче это корректировать.

Попробую еще татч подключить. Что-то я забыл про него упомянуть.

forfrends
Offline
Зарегистрирован: 24.02.2015

Только что попробовал подключить к ДУЕ - библиотека UTFT не кмпилируется- куча ошибок:

Arduino: 1.6.9 (Windows 7), Плата:"Arduino Due (Programming Port)"

Изменены опции сборки, пересобираем все
In file included from C:\Users\Игорь\Documents\Arduino\libraries\UTFT/UTFT.h:186:0,

                 from D:\Temp\arduino_modified_sketch_449763\UTFT_Demo_480x272.ino:13:

C:\Users\Игорь\Documents\Arduino\libraries\UTFT/hardware/arm/HW_ARM_defines.h:38:0: warning: "pgm_read_word" redefined [enabled by default]

 #define pgm_read_word(data) *data

 ^

In file included from C:\Users\Игорь\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\cores\arduino/Arduino.h:31:0,

                 from sketch\UTFT_Demo_480x272.ino.cpp:1:

C:\Users\Игорь\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\cores\arduino/avr/pgmspace.h:103:0: note: this is the location of the previous definition

 #define pgm_read_word(addr) (*(const unsigned short *)(addr))

 ^

In file included from C:\Users\Игорь\Documents\Arduino\libraries\UTFT/UTFT.h:186:0,

                 from D:\Temp\arduino_modified_sketch_449763\UTFT_Demo_480x272.ino:13:

C:\Users\Игорь\Documents\Arduino\libraries\UTFT/hardware/arm/HW_ARM_defines.h:39:0: warning: "pgm_read_byte" redefined [enabled by default]

 #define pgm_read_byte(data) *data

 ^

In file included from C:\Users\Игорь\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\cores\arduino/Arduino.h:31:0,

                 from sketch\UTFT_Demo_480x272.ino.cpp:1:

C:\Users\Игорь\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\cores\arduino/avr/pgmspace.h:102:0: note: this is the location of the previous definition

 #define pgm_read_byte(addr) (*(const unsigned char *)(addr))

 ^

D:\Temp\arduino_modified_sketch_449763\UTFT_Demo_480x272.ino: In function 'void loop()':

D:\Temp\arduino_modified_sketch_449763\UTFT_Demo_480x272.ino:58:68: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("* Universal Color TFT Display Library *", CENTER, 1);

                                                                    ^

D:\Temp\arduino_modified_sketch_449763\UTFT_Demo_480x272.ino:61:70: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("<http://electronics.henningkarlsen.com>", CENTER, 259);

                                                                      ^

D:\Temp\arduino_modified_sketch_449763\UTFT_Demo_480x272.ino:78:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Sin", 5, 15);

                            ^

D:\Temp\arduino_modified_sketch_449763\UTFT_Demo_480x272.ino:85:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Cos", 5, 27);

                            ^

D:\Temp\arduino_modified_sketch_449763\UTFT_Demo_480x272.ino:92:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Tan", 5, 39);

                            ^

D:\Temp\arduino_modified_sketch_449763\UTFT_Demo_480x272.ino:322:40: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("That's it!", CENTER, 93);

                                        ^

D:\Temp\arduino_modified_sketch_449763\UTFT_Demo_480x272.ino:323:46: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Restarting in a", CENTER, 119);

                                              ^

D:\Temp\arduino_modified_sketch_449763\UTFT_Demo_480x272.ino:324:45: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("few seconds...", CENTER, 132);

                                             ^

D:\Temp\arduino_modified_sketch_449763\UTFT_Demo_480x272.ino:328:47: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Runtime: (msecs)", CENTER, 243);

                                               ^

In file included from C:\Users\Игорь\Documents\Arduino\libraries\UTFT\UTFT.h:186:0,

                 from C:\Users\Игорь\Documents\Arduino\libraries\UTFT\UTFT.cpp:45:

C:\Users\Игорь\Documents\Arduino\libraries\UTFT\hardware/arm/HW_ARM_defines.h:38:0: warning: "pgm_read_word" redefined [enabled by default]

 #define pgm_read_word(data) *data

 ^

In file included from C:\Users\Игорь\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\cores\arduino/Arduino.h:31:0,

                 from C:\Users\Игорь\Documents\Arduino\libraries\UTFT\UTFT.h:185,

                 from C:\Users\Игорь\Documents\Arduino\libraries\UTFT\UTFT.cpp:45:

C:\Users\Игорь\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\cores\arduino/avr/pgmspace.h:103:0: note: this is the location of the previous definition

 #define pgm_read_word(addr) (*(const unsigned short *)(addr))

 ^

In file included from C:\Users\Игорь\Documents\Arduino\libraries\UTFT\UTFT.h:186:0,

                 from C:\Users\Игорь\Documents\Arduino\libraries\UTFT\UTFT.cpp:45:

C:\Users\Игорь\Documents\Arduino\libraries\UTFT\hardware/arm/HW_ARM_defines.h:39:0: warning: "pgm_read_byte" redefined [enabled by default]

 #define pgm_read_byte(data) *data

 ^

In file included from C:\Users\Игорь\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\cores\arduino/Arduino.h:31:0,

                 from C:\Users\Игорь\Documents\Arduino\libraries\UTFT\UTFT.h:185,

                 from C:\Users\Игорь\Documents\Arduino\libraries\UTFT\UTFT.cpp:45:

C:\Users\Игорь\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\cores\arduino/avr/pgmspace.h:102:0: note: this is the location of the previous definition

 #define pgm_read_byte(addr) (*(const unsigned char *)(addr))

 ^

libraries\UTFT\UTFT.cpp.o: In function `UTFT::UTFT(unsigned char, int, int, int, int, int)':

C:\Users\Игорь\Documents\Arduino\libraries\UTFT/UTFT.cpp:144: undefined reference to `UTFT::_set_direction_registers(unsigned char)'

libraries\UTFT\UTFT.cpp.o: In function `UTFT::LCD_Write_COM(char)':

C:\Users\Игорь\Documents\Arduino\libraries\UTFT/UTFT.cpp:191: undefined reference to `UTFT::LCD_Writ_Bus(char)'

libraries\UTFT\UTFT.cpp.o: In function `UTFT::LCD_Write_DATA(char)':

C:\Users\Игорь\Documents\Arduino\libraries\UTFT/UTFT.cpp:225: undefined reference to `UTFT::LCD_Writ_Bus(char)'

libraries\UTFT\UTFT.cpp.o: In function `UTFT::InitLCD(unsigned char)':

C:\Users\Игорь\Documents\Arduino\libraries\UTFT/UTFT.cpp:261: undefined reference to `UTFT::_hw_special_init()'

C:\Users\Игорь\Documents\Arduino\libraries\UTFT/UTFT.cpp:272: undefined reference to `UTFT::_set_direction_registers(unsigned char)'

libraries\UTFT\UTFT.cpp.o: In function `UTFT::clrScr()':

C:\Users\Игорь\Documents\Arduino\libraries\UTFT/UTFT.cpp:803: undefined reference to `UTFT::_fast_fill_8(int, long)'

libraries\UTFT\UTFT.cpp.o: In function `UTFT::fillScr(unsigned int)':

C:\Users\Игорь\Documents\Arduino\libraries\UTFT/UTFT.cpp:870: undefined reference to `UTFT::_fast_fill_8(int, long)'

C:\Users\Игорь\Documents\Arduino\libraries\UTFT/UTFT.cpp:876: undefined reference to `UTFT::LCD_Writ_Bus(char)'

C:\Users\Игорь\Documents\Arduino\libraries\UTFT/UTFT.cpp:877: undefined reference to `UTFT::LCD_Writ_Bus(char)'

libraries\UTFT\UTFT.cpp.o: In function `UTFT::drawHLine(int, int, int)':

C:\Users\Игорь\Documents\Arduino\libraries\UTFT/UTFT.cpp:1049: undefined reference to `UTFT::_fast_fill_8(int, long)'

libraries\UTFT\UTFT.cpp.o: In function `UTFT::drawVLine(int, int, int)':

C:\Users\Игорь\Documents\Arduino\libraries\UTFT/UTFT.cpp:1090: undefined reference to `UTFT::_fast_fill_8(int, long)'

libraries\UTFT\UTFT.cpp.o: In function `UTFT::fillRect(int, int, int, int)':

C:\Users\Игорь\Documents\Arduino\libraries\UTFT/UTFT.cpp:561: undefined reference to `UTFT::_fast_fill_8(int, long)'

collect2.exe: error: ld returned 1 exit status

exit status 1
Ошибка компиляции для платы Arduino Due (Programming Port).

Пример от Adafruit компилируется с ошибками, но загружается. При этом дисплей молчит. 

Ладно, с ДУЕ потом буду разбираться.

slider
Offline
Зарегистрирован: 17.06.2014

можете    изменить (подредактировать) свой пост , думаю просто описка

По пунктам 4 и 5: записи регистра 0x36 0xB6-регистр(КОМанда) , после обращения к нему LCD_Write_COM(0xB6) кидаются последовательно  3 параметра(ДАТА) , нужный второй  был LCD_Write_DATA(0x22);    имеет результат, но не особо. Если коротко, то: поворот на 90, отзеркаливание, цветопередача. Больше эффектов нет. Ну кроме что этим регистром можно подкорректировать запуск инита от ili9488. Регистр 0x22  - почти тот же эффект. регистра 0x22 в этом контроллере нет. видимо имели ввиду второй параметр(данные)

аппаратно работает это так не вдаваясь в подробности, на примере регитра 0xB6, грубо говоря, на шину данных D0-D7 контроллера устанавливается адрес регистра к которому надо обратиться к примеру 0xB6 , устанавливается уровень 0 на выводе D/C (Data/Command) - чтоб дисплей знал что мы ему собрались кинуть адрес регистра(команду)  , дергается WR (write запись) . Дисплей принимает. дальше устанавливаем D/C(DC он же RS) в 1 , тогда дисп. будет знать что мы будем кидать  параметры(данные) которые надо занести в этот регистр . Устанавливаем 0x00 на шине данных  и дергаем WR  , Устанавливаем 0x22 на шине данных  и дергаем WR  , Устанавливаем 0x3B на шине данных  и дергаем WR  ,  (у регистров/команд бывает по даташиту от 1 до 10 параметров(данных). Конечно библиотека это всё делает сама, мы только подставляем цифры. 

Да , закиньте пока DUE.

slider
Offline
Зарегистрирован: 17.06.2014
№18  2.4"  320x240 tft lcd  FPC2408-1  37pin  ( аналоги P/N 1540011640  1540013281   TNQV2408-1  BLU2408-1  T24BMHJ167V2  ) тлф. дисплей FLY DS123, FLY TS110, Explay SL240 , ...
 с регистра D3 читается 00 93 41  это контроллер ILI9341 .
 распиновка:
nc
+3.3v
+3.3v
CS
RS (DC) 
WR 
RD 
RESET 
DB0 
DB1 
DB2 
DB3 
DB4 
DB5 
DB6 
DB7 
DB8 
DB9 
DB10 
DB11 
DB12 
DB13 
DB14 
DB15 
nc 
тач 
тач 
тач 
тач 
A 
K1 
K2 
K3 
K4 
- 
- 
IM0

 

при подаче на IM0  лог0 -16бит режим , при лог1 - 8бит.  

подходят иниты от подобных контроллеров ili9486 ili9488 , .... (совпадение setxy )

	LCD_Write_COM(0x2a); 
	LCD_Write_DATA(x1>>8);
	LCD_Write_DATA(x1);
	LCD_Write_DATA(x2>>8);
	LCD_Write_DATA(x2);
	LCD_Write_COM(0x2b); 
	LCD_Write_DATA(y1>>8);
	LCD_Write_DATA(y1);
	LCD_Write_DATA(y2>>8);
	LCD_Write_DATA(y2);
	LCD_Write_COM(0x2c); 

если 16бит , то годиться UTFT , только в файле UTFT.cpp выставить display_transfer_mode = 16; (иначе из массива для него режимы SPI ). 

если 8 бит, то подойдет Adafruit (не SPI).          UTFT_8bit_turbo   из http://arduino.ru/forum/apparatnye-voprosy/35-tft-lcd-krasnyi-megovskii-mega-2560-r3-resheno-kak-reshit-drugie#comment-204256 , только уменьшить разрешение в UTFT.cpp на disp_x_size = 239; disp_y_size = 319;  .          возможно еще MCUFRIEND_kvb  

    

увы, на дисплее битая матрица :(

схема из тлф FLY DS123 

 

 

      

 

 

slider
Offline
Зарегистрирован: 17.06.2014

немного оффтоп. ( как подключить на телефон другой дисплей )

Если у вас сломался на телефоне дисплей , и такого нет рядом в продаже , то вкорячте что есть под рукой, который и неподходит даже . :)

просто близкому человеку нужны были контакты,  на симку скопировать :)   // софтины не хотелось искать и с ними разбираться.

 

И главное - надежно примотать скотчем :)

    

родной дисп 2.4"  ili9341 , в библиотеке UTFT пошарил по папкам драйверов UTFT\tft_drivers , у большинства схожие setxy.h , значит и инит подойдёт 99% .  попался под руку 2.8"  ili9338 от Alcatel . Подключить все,  кроме RD (его на + , чтоб дисп всегда был на приёме)  и прочей лабуды типа  TE , FMARK ,  ...  которая и не используется при обычном подключении к ардуино . Все оба питания от пина питания на котором +3.3в , а не 1.8в.

Если ставите дисп с совершенно другим контроллером как здесь, то надо оставлять старый дисплей подключенным, чтобы телефон опознал его родной дисп на месте (ID контроллера, и иногда производитель ставит резистор или делитель на шлейфе чтоб типа только его подходили дисплеи). Таким образом второй дисп просто висит параллельно в режиме приёма.

 

 

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

Кто в теме.. с умершего планшета есть дисплей с тачем. 

Что необходимо для подключения к ардуино.. хочу выводить примитивные тексты, диаграммы и т.п. 

был prestigio 5080B

chugun
Offline
Зарегистрирован: 01.07.2011

Уважаемые, кто осилил такой дисплей от NOKIA X6 (китай)  YDE FPC 32 T902 A1 ???

Распиновка совпадает с 3.0"  400x240   8K1465    TFT8K1465FPC-A1-E   TRULY-C   ( nokia china 5800 , X6 )

Инициализации ни для SPFD 5420A  ни для ILI 9326 не заводят дисплей,.

Драйвер по нулевому адресу не определяется, читаются нули. 

В телефоне дисплей исправно работает ...

Вопрос - каким драйвером управляется данный дисплей ???

forfrends
Offline
Зарегистрирован: 24.02.2015

p.masyukov, пожалуйста, перечитайте предыдущие страницы темы, их всего 4. Отвсет расписан что как и куда. Ищите примерную распиновку, читалкой определяете контроллер, подбираете инициализацию и радуетесь полученному девайсу :) Но вам всеравно нужно перечитать тему.

chugun, то же самое: перечитайте предыдущие страницы темы. Ищите примерную распиновку, читалкой (их две) определяете контроллер, подбираете инициализацию. 

slider, помогите разобраться с SPI: по даташиту используются 4 контакта: D/CX, CSX, SCL, SDA. Из даташита: The 4-line serial mode consists of the Data/Command selection input (D/CX), chip enable input (CSX), the serial clock input (SCL) and serial data Input/Output (SDA) for data transmission. (страница 30: 7.1.3. Serial Interface)

Мне не понятно как они подключаются к Ардуино. К каким контактам подключать D/CX, CSX, SCL, SDA? Что из них MISO, MOSI, SCK? Из примера статьи http://arduino-kit.ru/catalog/id/displey-sensornyiy-24-tft-lcd-240x320 :

SDO (MISO)  контакт 50 Ардуино МЕГА

SCK             контакт 52 Ардуино МЕГА

SDI (MOSI)   контакт 51 Ардуино МЕГА

D/C               - любой, по назначению

RESET         3.3 V (подключить к РЕСЕТ ардуино)

CS                - любой, по назначению

Из даташита SDA выполняет функцию SDO (MISO) и SDI (MOSI) (страница 31 и 215)I:

 

то к каким пинам все это дело подключать? Запутался я совсем.

slider
Offline
Зарегистрирован: 17.06.2014

p.masyukov,  прочитали бы пред. страницы , уже отвечал на этот вопрос. ещё добалю что в планшетниках и навигаторах используют мощные процы , поэтому дешёвые дисплеи в которых нет контроллеров с видеопамятью (своего рода видеокарт). Поэтому их можно подключить только через спецплаты выполняющих эту роль. Узнав цену вы раздумаете что либо с ним делать. Иначе бы вы запустили бы уже его на малом разрешении. 

 

chugun, это вопрос к вам. У вас же есть этот дисплей, вам и исследовать его. Разве что где-то вы ошиблись в подключении, раз читалка ничего не выдала. прочитайте тему, в последних сообщениях последние варианты читалок.

 

forfrends, как бы время чтоб это исследовать. Диспы по идее должны быть у меня с выведенными SDA .

Гляньте даташит ili9341, это же распространенный arduino SPI, тем более либа с аппаратным дружит.  Можно еще глянуть pdf к UTFT , там должно быть описано подключение SPI "4пин" и "5пин" . В примере   UTFT\examples\Arduino (AVR)\UTFT_Demo_320x240_Serial   написано 

// Uncomment the line for your display:
//UTFT myGLCD(TFT01_22SP,9,8,12,11,10);            // ElecFreaks TFT01-2.2SP
//UTFT myGLCD(MI0283QT9,11,13,7,8);                // Watterott MI0283QT9
UTFT myGLCD(DMTFT28105,MOSI,SCK,10,NOTINUSE,9);  // DisplayModule DM-TFT28-105 (Works with both Arduino Uno and Arduino Mega)

значит используется варианты 5пина и 4пина MOSI(SDA),SCK,10,9  или погуглить DM-TFT28-105  https://drive.google.com/file/d/0B_PdRXFyf9Rvc1BUUGtEdVZPX0U/edit  мож ещё что.  надо время разобраться. 

Иль методом тыка  попробовать подключить по всякому на адафруит и утфт. 

в утфт есть 2 разных инита s4p и s5p  в папке UTFT\tft_drivers\ili9341  . 

вызывать в примере по названиям как в memorysaver.h

//#define DISABLE_ILI9341_S4P 1 // MI0283QT9

//#define DISABLE_ILI9341_S5P 1 // TFT01_22SP / TFT01_24SP / TFT22SHLD / DMTFT28105
 
chugun
Offline
Зарегистрирован: 01.07.2011

 Уважаемые slider и forfriends , тему то я читал ... С подключением всё ровно, т.к. экран снят с рабочего телефона и управляющие сигналы не плохо наблюдаются и различаются при помощи осцилографа, а именно  RST, CS, RS, WR, RD, D0...D15 . Был бы лог.сканер - можно было бы снять инициализацию при включении телефона, но ...

 Читалка у меня своя, т.к. пишу в CodeVisionAVR и судя по предыдущим постам - это не единственный экран у которого чтение ID возвращает нули.

 Повторюсь - варианты инициализации пробовал для SPFD 5420A  и  ILI 9326 (т.к. именно эти драйверы поддерживают экраны с разрешением 240x400) - безрезультатно.

 Вопрос оставляю открытым - может у кого имеется инфа по данному дисплею YDE FPC 32 T902 A1 ( фото выше ) ...

forfrends
Offline
Зарегистрирован: 24.02.2015

chugun посмотрите эту читалку: http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=1#comment-169922

там идет чтение не только по нулевому регистру, а по всем доступным. Посмотрите код и попробуйте переделать для CVAVR. ID не всегда лежит по 0-му адресу. Кстати, не обязательно что бы контроллер поддерживал ваше разрешение. Могут поставить дисплей с меньшим разрешением чем выдает контроллер. Установленный у вас контроллер вполне может иметь разрешение 272х480 или 320х480, а использовать только часть видеопамяти. Советую попробовать иниты от других контроллеров.

slider
Offline
Зарегистрирован: 17.06.2014

forfrends ,  он походу в теме , оставьте, раз в другой оболочке сам написал. и осцилом полез.  

 У меня тож разные диспы 200х400 выдавали нули, закинул . пока через пару месяцев не вернулся к ним снова. оказалось управляющие пины по другому распологались там, не так как думал. подключил по другому и считалось всё. Бывали ещё пины (im) переворачивающие байты (8и8 //8080 8086), как ниббы в байте . бывало что пришлось задержки в читалку вставлять, для полных 16ти байтовых ответов немного иначе оказалось читалка должна читать (это можно проследить по изменениям в читалках до последних версий). Бывало что на шлейфе кондёр стоял на управляющем пине, поэтому через 10ком заваливался импульс. Считаю простой вариант это использовать для чтения ардуину Мегу, или немного портировать на MegaCore atmega128, там тоже есть цельные 8ми битные порты, так чтобы оставался аппаратный RX TX чтоб посмотреть большой ответ в мониторе порта.
// драйверов поддерживающих 240x400 много и они разные.

forfrends
Offline
Зарегистрирован: 24.02.2015

Эх, похоже придется затею с SPI отложить. Сильно узкие дорожки. Нет у меня навыка паять такею мелочь, велика вероятность что только испорчу дисплей. НО! По ходу все возможно было сделать. slider, вы сами и написали ответ: UTFT myGLCD(DMTFT28105,MOSI,SCK,10,NOTINUSE,9) для связи используется только MOSI (SDA). Да и на других сайтах нашел ту же инфу. Может чуток поднаберусь опыта - попробую. А пока разберусь еще с 3-мя дисплеями. Лежат и ждут своего часа :)

// Мне вот только странно что на ДУЕ ничего не заработало. Попробую стандартную (не правленную) библиотеку, может скомпилируется, а то не хочет.

chugun
Offline
Зарегистрирован: 01.07.2011

Уже не плохо, хоть какие-то наводящие ответы, спасибо товарищи !!! 

ArduinoMega и использую ...

Что за ниббы - поясните ???

Ещё вопрос по  самой первой читалке из начала темы - разве чтение выполняется дерганьем WR при низком RD ??? Судя по даташиту на SPFD5420 - чтение происходит при дерганье RD, при высоком уровне на WR... Вот выдержка из даташита  :

 WR - In 80-system interface mode, a write strobe signal can be input via this pin and initializes a write operation when the signal is low.

 RD -  In 80-system interface mode, a read strobe signal can be input via this pin and initializes a read operation when the signal is low.  

 

 

forfrends
Offline
Зарегистрирован: 24.02.2015

chugun, если взять ту же библиотеку UTFT, то в ней есть папка tft_drivers, в ней по папкам рассортированы контроллеры и инициализации к ним. Можно их испольховать. Лучше оставьте первую читалку, она только по 0-му адресу читает, возьмите читалку №3, ссылку давал выше. Она 100% вам выдаст какую-то полехную информацию.

///

Вопрос: как подключать татч?? На самом татче 4 пина, а все примеры идут с 5-и пиновыми настройками. Как быть? Наверное на шилдах стоят какие-то контроллеры татча? Если подключать на прямую, то нужна ли какая-то обвязка (резисторы конденсаторы)? Принцип работы татча знаю: два края "+" и "-", с других - чтение. Но хотелось бы что бы это заработало на библиотеке UTouch. Или может есть другие варианты?

slider
Offline
Зарегистрирован: 17.06.2014

chugun пишет:

....Ещё вопрос по  самой первой читалке из начала темы - разве чтение выполняется дерганьем WR при низком RD ??? Судя по даташиту на SPFD5420 - чтение происходит при дерганье RD, при высоком уровне на WR...

да, в первой читалке был какойто косяк, но она работала ибо это для 16ти бит проканывало, (важны спады и подъемы RD, задержки, по pdf после спада получите ноли , но через небольшое время - достоверная инфа, Дальше после подъема , после небольшого времени инфа ещё сколько-то существует потом пропадает - получите ноли , гляньте хорошенько картинку Read Cycle Sequence ).  В последних читалках вроде все как надо.

По сигналам все верно в даташите. Вот здесь http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=1#comment-168290 сделал картинки выдержки вроде из разных типов контроллеров

Возможно где и ошибаюсь, но понял и увидел так (что дергать WR RD и куда, при каком DC(RS) см. разные pdf):

a). 16бит где сразу идет ответ во все 16бит .  А если дисп включить в режим 8бит то передастся сначала старший байт, дергаем снова - младший байт.  

б). для других видов контроллеров  16бит передаются только младшими байтами,  естественно само собой и 8бит режиме. При первом дерганье  всегда получается лабуда или даже ваши ноли - ей верить нельзя так написано в pdf (типа случайное значение xx). надо второй раз дернуть - получим старший байт(первый параметр) , при третьем - младший(второй параметр), при последующих дерганьях получаем последующие параметры ,встречал до 10штук .  В последующих читалках опрос каждого регистра сделал через сброс диспа, 1.чтобы небыло шлака(последних показаний) при первом дерганьи 2.чтобы дисп был адекватен, а то вдруг послали ему команду(регистр) сна или ещё какого нибудь каматоза. После каждого сброса надо немного подождать 100-150мсек, поэтому читалки так не быстро всё выдают. (возможно и во сне диспы отвечают, особо не проверял, сделать сброс после опроса всех параметров каждого регистра - незаморачиваясь . и третий, главный  заяц, тот что случайное значение всегда будет равно 00 - что не будет засорять полученную таблицу всяким шлаком ) И. да, рекомендую притянуть все используемые пины Меги мегаомными резисторами к минусу, чтобы избежать другого вида мусора - остаточного. Там уж все равно на задевание пальца будет действовать, если появился мусор на задевание - ага , дисп не в режиме ответа!

forfrends пишет:

Вопрос: как подключать татч?? На самом татче 4 пина, а все примеры идут с 5-и пиновыми настройками. Как быть? Наверное на шилдах стоят какие-то контроллеры татча? Если подключать на прямую, то нужна ли какая-то обвязка (резисторы конденсаторы)? Принцип работы татча знаю: два края "+" и "-", с других - чтение. Но хотелось бы что бы это заработало на библиотеке UTouch. Или может есть другие варианты?

TouchScreen.h ( от Адафруит) - для подключения тача напрямую надо 4 пина (2 однозначно аналоговых и 2 цифровых иль аналоговых) . нормально рабтает, есть параметр силы нажатия. для калибровки понадобиться мультиметр чтоб измерить сопротивления.  Тач питается от ардуины , поэтому важно стабильное 5в , без просадок в хреновом USB шнуре.

UTouch.h (от UTFT, но сначала надо запускать пример для калибровки, в pdf и ютубе есть) - для подключения через SPI (вроде 5 пин) микруха SPI   XPT2046   ,( питается от стаба рядом 3.0-3.3в и соответственно тач тоже)  можно здесь поискать или погуглить .  можно еще такие платки прикупить на Али и Ебай что-то типа " lcd tft adapter board "  " XPT2046 PCB " " Pitch Adapter PCB FPC "

http://www.ebay.com/itm/2-8-2-4-inch-TFT-LCD-module-PCB-adapter-touch-IC-XPT2046-ads7843-for-arduino-/111096607326

http://www.ebay.com/itm/2-8-3-0-3-2-inch-TFT-LCD-module-PCB-adapter-touch-IC-XPT2046-ads7843-arduino-/121114582677

 

Это обычные переходники без установленной SPI микрухи тача , что касается широких шлейфов на любой шаг.

 

 

 

                 

http://ru.aliexpress.com/af/lcd%252Btft%252Badapter%252Bboard.html?isAffiliate=y&initiative_id=SB_20160909072644&site=rus&g=y&SearchText=lcd+tft+adapter+board&needQuery=n

 Для всяких двухрядных  надо искать что то типа " double row pcb " их тоже много всяких разных и на любой шаг

 

разъемы под них что то типа " lcd tft connector "

В настоящее время продаются шилды и с емкостными тачами (Они дороже) , у продавцов есть примеры под них. Значит можно приладить емкостные тачи какие есть (хотя в местных магазах они бывают дешевле чем резистивные), главное найти под них уже написанную либу у продавцов шилдов или в гугле.

diger67
Offline
Зарегистрирован: 25.07.2015

Вот такой имеется пирожок, писал выше. Живой но не как немогу завести. Шына 8Bit, без вариантов. http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-...

slider
Offline
Зарегистрирован: 17.06.2014

судя по количеству резисторов и дорожек от пинов дисплея (плохо видно) то это 16бит. Если хотите, можете прислать, гляну.  мож как здесь начудили http://arduino.ru/forum/apparatnye-voprosy/35-tft-lcd-krasnyi-megovskii-mega-2560-r3-resheno-kak-reshit-drugie#comment-204256 иль ещё что нового

diger67
Offline
Зарегистрирован: 25.07.2015

slider пишет:

судя по количеству резисторов и дорожек от пинов дисплея (плохо видно) то это 16бит. Если хотите, можете прислать, гляну.  мож как здесь начудили http://arduino.ru/forum/apparatnye-voprosy/35-tft-lcd-krasnyi-megovskii-mega-2560-r3-resheno-kak-reshit-drugie#comment-204256 иль ещё что нового

Нет, он точно 8 битный. Спаял с доски 8 бит на шлейфе, потом тупо 8 пустых контактов даже не разведены на сборки. Реагирует только на ili932x и то какой то призрак на 10-15 процентах экрана выводится. Статейка по ссылке помогла при ремонте битого индикатора, там дело как раз было в сигналах IM0-2, менял на то что было в инете на али подходящее по распиновке.

forfrends
Offline
Зарегистрирован: 24.02.2015

Вопрос по библиотеке UTFT: В библиотеке что я скачал присутствует расширенный набор шрифта - добавлен русский текст и некоторые иконки (смайлики, батирея, уровень сигнала...) вопрос как вызывать эти иконки?

Еще попробовал вывести надпись на русском - получилась какая-то белиберда. Вместо букв набор символов и значков. Содержимое DefaultFonts.c:

#if defined(__AVR__)
	#include <avr/pgmspace.h>
	#define fontdatatype  const uint8_t
#elif defined(__PIC32MX__)
	#define PROGMEM
	#define fontdatatype const unsigned char
#elif defined(__arm__)
	#define PROGMEM
	#define fontdatatype const unsigned char
#endif

// SmallFont.c 
// Modified by Alexey Stepanov (cyrillic symbols added)
// Font Size	: 8x12
// Memory usage	: 1720 bytes
// # characters	: 144
// offset       : 32






//fontdatatype SmallFont[1732] PROGMEM={         
fontdatatype SmallFont[2008] PROGMEM={         
//0x08,0x0C,0x20,0x8F,
0x08,0x0C,0x20,0xA6,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // <Space>
0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00,0x00, // !
0x00,0x28,0x50,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // "
0x00,0x00,0x28,0x28,0xFC,0x28,0x50,0xFC,0x50,0x50,0x00,0x00, // #
0x00,0x20,0x78,0xA8,0xA0,0x60,0x30,0x28,0xA8,0xF0,0x20,0x00, // $
0x00,0x00,0x48,0xA8,0xB0,0x50,0x28,0x34,0x54,0x48,0x00,0x00, // %
0x00,0x00,0x20,0x50,0x50,0x78,0xA8,0xA8,0x90,0x6C,0x00,0x00, // &
0x00,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // '
0x00,0x04,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x08,0x04,0x00, // (
0x00,0x40,0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x40,0x00, // )
0x00,0x00,0x00,0x20,0xA8,0x70,0x70,0xA8,0x20,0x00,0x00,0x00, // *
0x00,0x00,0x20,0x20,0x20,0xF8,0x20,0x20,0x20,0x00,0x00,0x00, // +
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x80, // ,
0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00, // -
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00, // .
0x00,0x08,0x10,0x10,0x10,0x20,0x20,0x40,0x40,0x40,0x80,0x00, // /
0x00,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00, // 0
0x00,0x00,0x20,0x60,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00, // 1
0x00,0x00,0x70,0x88,0x88,0x10,0x20,0x40,0x80,0xF8,0x00,0x00, // 2
0x00,0x00,0x70,0x88,0x08,0x30,0x08,0x08,0x88,0x70,0x00,0x00, // 3
0x00,0x00,0x10,0x30,0x50,0x50,0x90,0x78,0x10,0x18,0x00,0x00, // 4
0x00,0x00,0xF8,0x80,0x80,0xF0,0x08,0x08,0x88,0x70,0x00,0x00, // 5
0x00,0x00,0x70,0x90,0x80,0xF0,0x88,0x88,0x88,0x70,0x00,0x00, // 6
0x00,0x00,0xF8,0x90,0x10,0x20,0x20,0x20,0x20,0x20,0x00,0x00, // 7
0x00,0x00,0x70,0x88,0x88,0x70,0x88,0x88,0x88,0x70,0x00,0x00, // 8
0x00,0x00,0x70,0x88,0x88,0x88,0x78,0x08,0x48,0x70,0x00,0x00, // 9
0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x20,0x00,0x00, // :
0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x20,0x00, // ;
0x00,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x00,0x00, // <
0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0x00,0x00, // =
0x00,0x40,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x40,0x00,0x00, // >
0x00,0x00,0x70,0x88,0x88,0x10,0x20,0x20,0x00,0x20,0x00,0x00, // ?
0x00,0x00,0x70,0x88,0x98,0xA8,0xA8,0xB8,0x80,0x78,0x00,0x00, // @
0x00,0x00,0x20,0x20,0x30,0x50,0x50,0x78,0x48,0xCC,0x00,0x00, // A
0x00,0x00,0xF0,0x48,0x48,0x70,0x48,0x48,0x48,0xF0,0x00,0x00, // B
0x00,0x00,0x78,0x88,0x80,0x80,0x80,0x80,0x88,0x70,0x00,0x00, // C
0x00,0x00,0xF0,0x48,0x48,0x48,0x48,0x48,0x48,0xF0,0x00,0x00, // D
0x00,0x00,0xF8,0x48,0x50,0x70,0x50,0x40,0x48,0xF8,0x00,0x00, // E
0x00,0x00,0xF8,0x48,0x50,0x70,0x50,0x40,0x40,0xE0,0x00,0x00, // F
0x00,0x00,0x38,0x48,0x80,0x80,0x9C,0x88,0x48,0x30,0x00,0x00, // G
0x00,0x00,0xCC,0x48,0x48,0x78,0x48,0x48,0x48,0xCC,0x00,0x00, // H
0x00,0x00,0xF8,0x20,0x20,0x20,0x20,0x20,0x20,0xF8,0x00,0x00, // I
0x00,0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x90,0xE0,0x00, // J
0x00,0x00,0xEC,0x48,0x50,0x60,0x50,0x50,0x48,0xEC,0x00,0x00, // K
0x00,0x00,0xE0,0x40,0x40,0x40,0x40,0x40,0x44,0xFC,0x00,0x00, // L
0x00,0x00,0xD8,0xD8,0xD8,0xD8,0xA8,0xA8,0xA8,0xA8,0x00,0x00, // M
0x00,0x00,0xDC,0x48,0x68,0x68,0x58,0x58,0x48,0xE8,0x00,0x00, // N
0x00,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00, // O
0x00,0x00,0xF0,0x48,0x48,0x70,0x40,0x40,0x40,0xE0,0x00,0x00, // P
0x00,0x00,0x70,0x88,0x88,0x88,0x88,0xE8,0x98,0x70,0x18,0x00, // Q
0x00,0x00,0xF0,0x48,0x48,0x70,0x50,0x48,0x48,0xEC,0x00,0x00, // R
0x00,0x00,0x78,0x88,0x80,0x60,0x10,0x08,0x88,0xF0,0x00,0x00, // S
0x00,0x00,0xF8,0xA8,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00, // T
0x00,0x00,0xCC,0x48,0x48,0x48,0x48,0x48,0x48,0x30,0x00,0x00, // U
0x00,0x00,0xCC,0x48,0x48,0x50,0x50,0x30,0x20,0x20,0x00,0x00, // V
0x00,0x00,0xA8,0xA8,0xA8,0x70,0x50,0x50,0x50,0x50,0x00,0x00, // W
0x00,0x00,0xD8,0x50,0x50,0x20,0x20,0x50,0x50,0xD8,0x00,0x00, // X
0x00,0x00,0xD8,0x50,0x50,0x20,0x20,0x20,0x20,0x70,0x00,0x00, // Y
0x00,0x00,0xF8,0x90,0x10,0x20,0x20,0x40,0x48,0xF8,0x00,0x00, // Z
0x00,0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x38,0x00, // [
0x00,0x40,0x40,0x40,0x20,0x20,0x10,0x10,0x10,0x08,0x00,0x00, // <Backslash>
0x00,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x70,0x00, // ]
0x00,0x20,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ^
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC, // _
0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // '
0x00,0x00,0x00,0x00,0x00,0x30,0x48,0x38,0x48,0x3C,0x00,0x00, // a
0x00,0x00,0xC0,0x40,0x40,0x70,0x48,0x48,0x48,0x70,0x00,0x00, // b
0x00,0x00,0x00,0x00,0x00,0x38,0x48,0x40,0x40,0x38,0x00,0x00, // c
0x00,0x00,0x18,0x08,0x08,0x38,0x48,0x48,0x48,0x3C,0x00,0x00, // d
0x00,0x00,0x00,0x00,0x00,0x30,0x48,0x78,0x40,0x38,0x00,0x00, // e
0x00,0x00,0x1C,0x20,0x20,0x78,0x20,0x20,0x20,0x78,0x00,0x00, // f
0x00,0x00,0x00,0x00,0x00,0x3C,0x48,0x30,0x40,0x78,0x44,0x38, // g
0x00,0x00,0xC0,0x40,0x40,0x70,0x48,0x48,0x48,0xEC,0x00,0x00, // h
0x00,0x00,0x20,0x00,0x00,0x60,0x20,0x20,0x20,0x70,0x00,0x00, // i
0x00,0x00,0x10,0x00,0x00,0x30,0x10,0x10,0x10,0x10,0x10,0xE0, // j
0x00,0x00,0xC0,0x40,0x40,0x5C,0x50,0x70,0x48,0xEC,0x00,0x00, // k
0x00,0x00,0xE0,0x20,0x20,0x20,0x20,0x20,0x20,0xF8,0x00,0x00, // l
0x00,0x00,0x00,0x00,0x00,0xF0,0xA8,0xA8,0xA8,0xA8,0x00,0x00, // m
0x00,0x00,0x00,0x00,0x00,0xF0,0x48,0x48,0x48,0xEC,0x00,0x00, // n
0x00,0x00,0x00,0x00,0x00,0x30,0x48,0x48,0x48,0x30,0x00,0x00, // o
0x00,0x00,0x00,0x00,0x00,0xF0,0x48,0x48,0x48,0x70,0x40,0xE0, // p
0x00,0x00,0x00,0x00,0x00,0x38,0x48,0x48,0x48,0x38,0x08,0x1C, // q
0x00,0x00,0x00,0x00,0x00,0xD8,0x60,0x40,0x40,0xE0,0x00,0x00, // r
0x00,0x00,0x00,0x00,0x00,0x78,0x40,0x30,0x08,0x78,0x00,0x00, // s
0x00,0x00,0x00,0x20,0x20,0x70,0x20,0x20,0x20,0x18,0x00,0x00, // t
0x00,0x00,0x00,0x00,0x00,0xD8,0x48,0x48,0x48,0x3C,0x00,0x00, // u
0x00,0x00,0x00,0x00,0x00,0xEC,0x48,0x50,0x30,0x20,0x00,0x00, // v
0x00,0x00,0x00,0x00,0x00,0xA8,0xA8,0x70,0x50,0x50,0x00,0x00, // w
0x00,0x00,0x00,0x00,0x00,0xD8,0x50,0x20,0x50,0xD8,0x00,0x00, // x
0x00,0x00,0x00,0x00,0x00,0xEC,0x48,0x50,0x30,0x20,0x20,0xC0, // y
0x00,0x00,0x00,0x00,0x00,0x78,0x10,0x20,0x20,0x78,0x00,0x00, // z
0x00,0x18,0x10,0x10,0x10,0x20,0x10,0x10,0x10,0x10,0x18,0x00, // {
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, // |
0x00,0x60,0x20,0x20,0x20,0x10,0x20,0x20,0x20,0x20,0x60,0x00, // }
0x40,0xA4,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ~
0x00,0x00,0x30,0x48,0x48,0x30,0x00,0x00,0x00,0x00,0x00,0x00, // градус 127	0x7F
0x00,0x00,0xF8,0x48,0x40,0x70,0x48,0x48,0x48,0xF0,0x00,0x00, // Б	128	0x80
0x00,0x00,0xF8,0x48,0x40,0x40,0x40,0x40,0x40,0xE0,0x00,0x00, // Г	129	0x81
0x00,0x00,0x38,0x48,0x48,0x48,0x48,0x48,0x48,0xFC,0x84,0x00, // Д	130	0x82
0x50,0x00,0xF8,0x48,0x50,0x70,0x50,0x40,0x48,0xF8,0x00,0x00, // Ё	131	0x83
0x00,0x00,0xA8,0xA8,0xA8,0x70,0xF8,0xA8,0xA8,0xA8,0x00,0x00, // Ж	132	0x84
0x00,0x00,0xF0,0x88,0x08,0x30,0x08,0x08,0x08,0xF0,0x00,0x00, // З	133	0x85
0x00,0x00,0xEC,0x48,0x58,0x58,0x68,0x68,0x48,0xDC,0x00,0x00, // И	134	0x86
0x30,0x00,0xEC,0x48,0x58,0x58,0x68,0x68,0x48,0xDC,0x00,0x00, // Й	135	0x87
0x00,0x00,0x3C,0x48,0x48,0x48,0x48,0x48,0x48,0xCC,0x00,0x00, // Л	136	0x88
0x00,0x00,0xFC,0x48,0x48,0x48,0x48,0x48,0x48,0xCC,0x00,0x00, // П	137	0x89
0x00,0x00,0xD8,0x50,0x50,0x20,0x20,0x40,0x40,0x80,0x00,0x00, // У	138	0x8A
0x00,0x00,0x70,0xA8,0xA8,0xA8,0xA8,0x70,0x20,0x70,0x00,0x00, // Ф	139	0x8B
0x00,0x00,0xCC,0x48,0x48,0x48,0x48,0x48,0x48,0xFC,0x04,0x00, // Ц	140 0x8C
0x00,0x00,0xCC,0x48,0x48,0x48,0x38,0x08,0x08,0x1C,0x00,0x00, // Ч	141	0x8D
0x00,0x00,0xD6,0x54,0x54,0x54,0x54,0x54,0x54,0xFE,0x00,0x00, // Ш	142	0x8E
0x00,0x00,0xD6,0x54,0x54,0x54,0x54,0x54,0x54,0xFE,0x02,0x00, // Щ	143	0x8F
0x00,0x00,0xE0,0xC0,0x40,0x70,0x48,0x48,0x48,0xF0,0x00,0x00, // Ъ	144	0x90
0x00,0x00,0xEE,0x44,0x44,0x64,0x54,0x54,0x54,0xEE,0x00,0x00, // Ы	145	0x91
0x00,0x00,0xE0,0x40,0x40,0x70,0x48,0x48,0x48,0xF0,0x00,0x00, // Ь	146	0x92
0x00,0x00,0xE0,0x90,0x08,0x38,0x08,0x08,0x90,0x60,0x00,0x00, // Э	147	0x93
0x00,0x00,0xEC,0x52,0x52,0x52,0x72,0x52,0x52,0xEC,0x00,0x00, // Ю	148	0x94
0x00,0x00,0x3C,0x48,0x48,0x48,0x38,0x48,0x48,0x9C,0x00,0x00, // Я	149	0x95
0x00,0x00,0x08,0x30,0x40,0x70,0x48,0x48,0x48,0x30,0x00,0x00, // б	150	0x96
0x00,0x00,0x00,0x00,0x00,0x70,0x28,0x30,0x28,0x70,0x00,0x00, // в	151	0x97
0x00,0x00,0x00,0x00,0x00,0x78,0x28,0x20,0x20,0x70,0x00,0x00, // г	152	0x98
0x00,0x00,0x00,0x00,0x00,0x18,0x28,0x28,0x28,0x7C,0x44,0x00, // д	153	0x99
0x00,0x00,0x00,0x28,0x00,0x30,0x48,0x78,0x40,0x30,0x00,0x00, // ё	154	0x9A
0x00,0x00,0x00,0x00,0x00,0x54,0x54,0x38,0x54,0x54,0x00,0x00, // ж	155	0x9B
0x00,0x00,0x00,0x00,0x00,0x70,0x08,0x30,0x08,0x70,0x00,0x00, // з	156	0x9C
0x00,0x00,0x00,0x00,0x00,0xCC,0x48,0x58,0x68,0xCC,0x00,0x00, // и	157	0x9D
0x00,0x00,0x00,0x30,0x00,0xCC,0x48,0x58,0x68,0xCC,0x00,0x00, // й	158	0x9E
0x00,0x00,0x00,0x00,0x00,0x48,0x50,0x60,0x50,0x48,0x00,0x00, // к	159	0x9F
0x00,0x00,0x00,0x00,0x00,0x1C,0x28,0x28,0x28,0x4C,0x00,0x00, // л	160	0xA0
0x00,0x00,0x00,0x00,0x00,0x44,0x6C,0x54,0x44,0x44,0x00,0x00, // м	161	0xA1
0x00,0x00,0x00,0x00,0x00,0xCC,0x48,0x78,0x48,0xCC,0x00,0x00, // н	162	0xA2
0x00,0x00,0x00,0x00,0x00,0xFC,0x48,0x48,0x48,0xCC,0x00,0x00, // п	163	0xA3
0x00,0x00,0x00,0x00,0x00,0x7C,0x54,0x10,0x10,0x38,0x00,0x00, // т	164	0xA4
0x00,0x00,0x00,0x00,0x00,0x38,0x54,0x54,0x54,0x38,0x10,0x38, // ф	165	0xA5
0x00,0x00,0x00,0x00,0x00,0xCC,0x48,0x48,0x48,0xFC,0x04,0x00, // ц	166	0xA6
0x00,0x00,0x00,0x00,0x00,0xCC,0x48,0x38,0x08,0x0C,0x00,0x00, // ч	167	0xA7
0x00,0x00,0x00,0x00,0x00,0x54,0x54,0x54,0x54,0x7C,0x00,0x00, // ш	168	0xA8
0x00,0x00,0x00,0x00,0x00,0x54,0x54,0x54,0x54,0x7E,0x02,0x00, // щ	169	0xA9
0x00,0x00,0x00,0x00,0x00,0xE0,0xA0,0x30,0x28,0x70,0x00,0x00, // ъ	170	0xAA
0x00,0x00,0x00,0x00,0x00,0xC6,0x44,0x64,0x54,0xE6,0x00,0x00, // ы	171	0xAB
0x00,0x00,0x00,0x00,0x00,0x60,0x20,0x30,0x28,0x70,0x00,0x00, // ь	172	0xAC
0x00,0x00,0x00,0x00,0x00,0x30,0x48,0x18,0x48,0x30,0x00,0x00, // э	173	0xAD
0x00,0x00,0x00,0x00,0x00,0xC8,0x54,0x74,0x54,0xC8,0x00,0x00, // ю	174	0xAE
0x00,0x00,0x00,0x00,0x00,0x3C,0x48,0x48,0x38,0x4C,0x00,0x00, // я	175	0xAF

0x3C,0xE7,0x81,0xBD,0x81,0xBD,0x81,0xBD,0x81,0xBD,0x81,0xFF, // BATT FULL	176	0xB0
0x3C,0xE7,0x81,0x81,0x81,0xBD,0x81,0xBD,0x81,0xBD,0x81,0xFF, // BATT 75%	177	0xB1	
0x3C,0xE7,0x81,0x81,0x81,0x81,0x81,0xBD,0x81,0xBD,0x81,0xFF, // BATT 50%	178	0xB2
0x3C,0xE7,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xBD,0x81,0xFF, // BATT 25%	179	0xB3
0x3C,0xE7,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // BATT EMPTY	180	0xB4
0xFF,0xFF,0x00,0x3F,0x3F,0x00,0x0F,0x0F,0x00,0x03,0x03,0x00, // сингал 100%	181	0xB5
0x00,0x00,0x00,0x3F,0x3F,0x00,0x0F,0x0F,0x00,0x03,0x03,0x00, // сигнал 75%	182	0xB6
0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x00,0x03,0x03,0x00, // сигнал 50%	183	0xB7
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x00, // сигнал 25%	184	0xB8
0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x54,0x38,0x10,0x00,0x00, // стрелка вверх	185	0xB9
0x00,0x00,0x10,0x38,0x54,0x10,0x10,0x10,0x10,0x10,0x00,0x00, // стрелка вниз	186	0xBA
0x00,0x00,0x00,0x00,0x10,0x08,0x7C,0x08,0x10,0x00,0x00,0x00, // стрелка вправо	187	0xBB
0x00,0x00,0x00,0x00,0x10,0x20,0x7C,0x20,0x10,0x00,0x00,0x00, // стрелка влево	188	0xBC
0x00,0x00,0x00,0x3C,0x0C,0x14,0x24,0x44,0x80,0x00,0x00,0x00, // стрелка вверх вправо	189	0xBD
0x00,0x00,0x00,0x80,0x44,0x24,0x14,0x0C,0x3C,0x00,0x00,0x00, // стрелка вниз вправо	190	0xBE
0x00,0x00,0x3C,0x42,0xA5,0x81,0xA5,0x99,0x42,0x3C,0x00,0x00, // веселый смайл	191	0xBF
0x00,0x00,0x3C,0x7E,0xDB,0xFF,0xFF,0xDB,0x66,0x3C,0x00,0x00, // веселый негр 192	0xC0
0x00,0x00,0x3C,0x42,0xA5,0x81,0x99,0xA5,0x42,0x3C,0x00,0x00, // грустный смайл 	193	0xC1
0x00,0x00,0x3C,0x7E,0xDB,0xFF,0xFF,0xE7,0x5A,0x3C,0x00,0x00, // грустный негр 194	0xC2
0x00,0x00,0x3C,0x42,0x81,0x81,0x81,0x81,0x42,0x3C,0x00,0x00, // пустой круг	195	0xC3
0x00,0x00,0x3C,0x7E,0xFF,0xFF,0xFF,0xFF,0x7E,0x3C,0x00,0x00, // полный круг 196	0xC4
0x00,0x00,0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0xFF,0x00,0x00, // квадрат пустой 197	0xC5
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, // квадрат полный 198	0xC6
};  

// SmallSymbolFont.c (C) 2013 by Alexey Stepanov
// Font Size	: 8x12
// Memory usage	: 280 bytes
// # characters	: 23
// offset       : 32

fontdatatype SmallSymbolFont[280] PROGMEM={         
0x08,0x0C,0x20,0x17,
0x3C,0xE7,0x81,0xBD,0x81,0xBD,0x81,0xBD,0x81,0xBD,0x81,0xFF, // BATT FULL	32
0x3C,0xE7,0x81,0x81,0x81,0xBD,0x81,0xBD,0x81,0xBD,0x81,0xFF, // BATT 75%	33	
0x3C,0xE7,0x81,0x81,0x81,0x81,0x81,0xBD,0x81,0xBD,0x81,0xFF, // BATT 50%	34
0x3C,0xE7,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xBD,0x81,0xFF, // BATT 25%	35
0x3C,0xE7,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // BATT EMPTY	36
0xFF,0xFF,0x00,0x3F,0x3F,0x00,0x0F,0x0F,0x00,0x03,0x03,0x00, // сингал 100%	37
0x00,0x00,0x00,0x3F,0x3F,0x00,0x0F,0x0F,0x00,0x03,0x03,0x00, // сигнал 75%	38
0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x00,0x03,0x03,0x00, // сигнал 50%	39
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x00, // сигнал 25%	40
0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x54,0x38,0x10,0x00,0x00, // стрелка вверх	41
0x00,0x00,0x10,0x38,0x54,0x10,0x10,0x10,0x10,0x10,0x00,0x00, // стрелка вниз	42
0x00,0x00,0x00,0x00,0x10,0x08,0x7C,0x08,0x10,0x00,0x00,0x00, // стрелка вправо	43
0x00,0x00,0x00,0x00,0x10,0x20,0x7C,0x20,0x10,0x00,0x00,0x00, // стрелка влево	44
0x00,0x00,0x00,0x3C,0x0C,0x14,0x24,0x44,0x80,0x00,0x00,0x00, // стрелка вверх вправо	45
0x00,0x00,0x00,0x80,0x44,0x24,0x14,0x0C,0x3C,0x00,0x00,0x00, // стрелка вниз вправо	46
0x00,0x00,0x3C,0x42,0xA5,0x81,0xA5,0x99,0x42,0x3C,0x00,0x00, // веселый смайл	47
0x00,0x00,0x3C,0x7E,0xDB,0xFF,0xFF,0xDB,0x66,0x3C,0x00,0x00, // веселый негр 48
0x00,0x00,0x3C,0x42,0xA5,0x81,0x99,0xA5,0x42,0x3C,0x00,0x00, // грустный смайл 	49
0x00,0x00,0x3C,0x7E,0xDB,0xFF,0xFF,0xE7,0x5A,0x3C,0x00,0x00, // грустный негр 50
0x00,0x00,0x3C,0x42,0x81,0x81,0x81,0x81,0x42,0x3C,0x00,0x00, // пустой круг	51
0x00,0x00,0x3C,0x7E,0xFF,0xFF,0xFF,0xFF,0x7E,0x3C,0x00,0x00, // полный круг 52
0x00,0x00,0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0xFF,0x00,0x00, // квадрат пустой 53
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, // квадрат полный 54
};

// BigFont.c (C)2010 by Henning Karlsen
// Font Size	: 16x16
// Memory usage	: 3044 bytes
// # characters	: 95

fontdatatype BigFont[4612] PROGMEM={
0x10,0x10,0x20,0x8F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //  <Space>
0x00,0x00,0x00,0x00,0x07,0x00,0x0F,0x80,0x0F,0x80,0x0F,0x80,0x0F,0x80,0x0F,0x80,0x07,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x00,0x00, // !
0x00,0x00,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x06,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // "
0x00,0x00,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x7F,0xFE,0x7F,0xFE,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x7F,0xFE,0x7F,0xFE,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x00,0x00, // #
0x00,0x00,0x02,0x40,0x02,0x40,0x0F,0xF8,0x1F,0xF8,0x1A,0x40,0x1A,0x40,0x1F,0xF0,0x0F,0xF8,0x02,0x58,0x02,0x58,0x1F,0xF8,0x1F,0xF0,0x02,0x40,0x02,0x40,0x00,0x00, // $
0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x10,0x0E,0x30,0x0E,0x70,0x00,0xE0,0x01,0xC0,0x03,0x80,0x07,0x00,0x0E,0x70,0x0C,0x70,0x08,0x70,0x00,0x00,0x00,0x00,0x00,0x00, // %
0x00,0x00,0x00,0x00,0x0F,0x00,0x19,0x80,0x19,0x80,0x19,0x80,0x0F,0x00,0x0F,0x08,0x0F,0x98,0x19,0xF8,0x18,0xF0,0x18,0xE0,0x19,0xF0,0x0F,0x98,0x00,0x00,0x00,0x00, // &
0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // '
0x00,0x00,0x00,0x00,0x00,0xF0,0x01,0xC0,0x03,0x80,0x07,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x07,0x00,0x03,0x80,0x01,0xC0,0x00,0xF0,0x00,0x00,0x00,0x00, // (
0x00,0x00,0x00,0x00,0x0F,0x00,0x03,0x80,0x01,0xC0,0x00,0xE0,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0xE0,0x01,0xC0,0x03,0x80,0x0F,0x00,0x00,0x00,0x00,0x00, // )
0x00,0x00,0x00,0x00,0x01,0x80,0x11,0x88,0x09,0x90,0x07,0xE0,0x07,0xE0,0x3F,0xFC,0x3F,0xFC,0x07,0xE0,0x07,0xE0,0x09,0x90,0x11,0x88,0x01,0x80,0x00,0x00,0x00,0x00, // *
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x0F,0xF0,0x0F,0xF0,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // +
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x0E,0x00,0x00,0x00, // ,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00,0x00, // ,
0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x06,0x00,0x0E,0x00,0x1C,0x00,0x38,0x00,0x70,0x00,0xE0,0x01,0xC0,0x03,0x80,0x07,0x00,0x0E,0x00,0x1C,0x00,0x00,0x00,0x00,0x00, // /
0x00,0x00,0x00,0x00,0x0F,0xF0,0x1C,0x38,0x1C,0x78,0x1C,0xF8,0x1C,0xF8,0x1D,0xB8,0x1D,0xB8,0x1F,0x38,0x1F,0x38,0x1E,0x38,0x1C,0x38,0x0F,0xF0,0x00,0x00,0x00,0x00, // 0
0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x03,0x80,0x1F,0x80,0x1F,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x1F,0xF0,0x00,0x00,0x00,0x00, // 1
0x00,0x00,0x00,0x00,0x0F,0xE0,0x1C,0x70,0x1C,0x38,0x00,0x38,0x00,0x70,0x00,0xE0,0x01,0xC0,0x03,0x80,0x07,0x00,0x0E,0x38,0x1C,0x38,0x1F,0xF8,0x00,0x00,0x00,0x00, // 2
0x00,0x00,0x00,0x00,0x0F,0xE0,0x1C,0x70,0x1C,0x38,0x00,0x38,0x00,0x70,0x03,0xC0,0x03,0xC0,0x00,0x70,0x00,0x38,0x1C,0x38,0x1C,0x70,0x0F,0xE0,0x00,0x00,0x00,0x00, // 3
0x00,0x00,0x00,0x00,0x00,0xE0,0x01,0xE0,0x03,0xE0,0x06,0xE0,0x0C,0xE0,0x18,0xE0,0x1F,0xF8,0x1F,0xF8,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x03,0xF8,0x00,0x00,0x00,0x00, // 4
0x00,0x00,0x00,0x00,0x1F,0xF8,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1F,0xE0,0x1F,0xF0,0x00,0x78,0x00,0x38,0x1C,0x38,0x1C,0x70,0x0F,0xE0,0x00,0x00,0x00,0x00, // 5
0x00,0x00,0x00,0x00,0x03,0xE0,0x07,0x00,0x0E,0x00,0x1C,0x00,0x1C,0x00,0x1F,0xF0,0x1F,0xF8,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x0F,0xF0,0x00,0x00,0x00,0x00, // 6
0x00,0x00,0x00,0x00,0x1F,0xFC,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x00,0x1C,0x00,0x38,0x00,0x70,0x00,0xE0,0x01,0xC0,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00, // 7
0x00,0x00,0x00,0x00,0x0F,0xF0,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1F,0x38,0x07,0xE0,0x07,0xE0,0x1C,0xF8,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x0F,0xF0,0x00,0x00,0x00,0x00, // 8
0x00,0x00,0x00,0x00,0x0F,0xF0,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1F,0xF8,0x0F,0xF8,0x00,0x38,0x00,0x38,0x00,0x70,0x00,0xE0,0x07,0xC0,0x00,0x00,0x00,0x00, // 9
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // :
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ;
0x00,0x00,0x00,0x70,0x00,0xE0,0x01,0xC0,0x03,0x80,0x07,0x00,0x0E,0x00,0x1C,0x00,0x1C,0x00,0x0E,0x00,0x07,0x00,0x03,0x80,0x01,0xC0,0x00,0xE0,0x00,0x70,0x00,0x00, // <
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFC,0x3F,0xFC,0x00,0x00,0x00,0x00,0x3F,0xFC,0x3F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // =
0x00,0x00,0x1C,0x00,0x0E,0x00,0x07,0x00,0x03,0x80,0x01,0xC0,0x00,0xE0,0x00,0x70,0x00,0x70,0x00,0xE0,0x01,0xC0,0x03,0x80,0x07,0x00,0x0E,0x00,0x1C,0x00,0x00,0x00, // >
0x00,0x00,0x03,0xC0,0x0F,0xF0,0x1E,0x78,0x18,0x38,0x00,0x38,0x00,0x70,0x00,0xE0,0x01,0xC0,0x01,0xC0,0x00,0x00,0x00,0x00,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x00,0x00, // ?
0x00,0x00,0x0F,0xF8,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0xFC,0x1C,0xFC,0x1C,0xFC,0x1C,0xFC,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1F,0xF0,0x07,0xF8,0x00,0x00, // @
0x00,0x00,0x00,0x00,0x03,0xC0,0x07,0xE0,0x0E,0x70,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1F,0xF8,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x00,0x00,0x00,0x00, // A
0x00,0x00,0x00,0x00,0x1F,0xF0,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0F,0xF0,0x0F,0xF0,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x1F,0xF0,0x00,0x00,0x00,0x00, // B
0x00,0x00,0x00,0x00,0x07,0xF0,0x0E,0x38,0x1C,0x38,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x38,0x0E,0x38,0x07,0xF0,0x00,0x00,0x00,0x00, // C
0x00,0x00,0x00,0x00,0x1F,0xE0,0x0E,0x70,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x70,0x1F,0xE0,0x00,0x00,0x00,0x00, // D
0x00,0x00,0x00,0x00,0x1F,0xF8,0x0E,0x18,0x0E,0x08,0x0E,0x00,0x0E,0x30,0x0F,0xF0,0x0F,0xF0,0x0E,0x30,0x0E,0x00,0x0E,0x08,0x0E,0x18,0x1F,0xF8,0x00,0x00,0x00,0x00, // E
0x00,0x00,0x00,0x00,0x1F,0xF8,0x0E,0x18,0x0E,0x08,0x0E,0x00,0x0E,0x30,0x0F,0xF0,0x0F,0xF0,0x0E,0x30,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x1F,0x00,0x00,0x00,0x00,0x00, // F
0x00,0x00,0x00,0x00,0x07,0xF0,0x0E,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0xF8,0x1C,0x38,0x1C,0x38,0x0E,0x38,0x07,0xF8,0x00,0x00,0x00,0x00, // G
0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1F,0xF0,0x1F,0xF0,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x00,0x00,0x00,0x00, // H
0x00,0x00,0x00,0x00,0x0F,0xE0,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x0F,0xE0,0x00,0x00,0x00,0x00, // I
0x00,0x00,0x00,0x00,0x01,0xFC,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x0F,0xE0,0x00,0x00,0x00,0x00, // J
0x00,0x00,0x00,0x00,0x1E,0x38,0x0E,0x38,0x0E,0x70,0x0E,0xE0,0x0F,0xC0,0x0F,0x80,0x0F,0x80,0x0F,0xC0,0x0E,0xE0,0x0E,0x70,0x0E,0x38,0x1E,0x38,0x00,0x00,0x00,0x00, // K
0x00,0x00,0x00,0x00,0x1F,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x08,0x0E,0x18,0x0E,0x38,0x1F,0xF8,0x00,0x00,0x00,0x00, // L
0x00,0x00,0x00,0x00,0x1C,0x1C,0x1E,0x3C,0x1F,0x7C,0x1F,0xFC,0x1F,0xFC,0x1D,0xDC,0x1C,0x9C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x00,0x00,0x00,0x00, // M
0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x1C,0x1E,0x1C,0x1F,0x1C,0x1F,0x9C,0x1D,0xDC,0x1C,0xFC,0x1C,0x7C,0x1C,0x3C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x00,0x00,0x00,0x00, // N
0x00,0x00,0x00,0x00,0x03,0xE0,0x07,0xF0,0x0E,0x38,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x0E,0x38,0x07,0xF0,0x03,0xE0,0x00,0x00,0x00,0x00, // O
0x00,0x00,0x00,0x00,0x1F,0xF0,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0F,0xF0,0x0F,0xF0,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x1F,0x00,0x00,0x00,0x00,0x00, // P
0x00,0x00,0x00,0x00,0x03,0xE0,0x0F,0x78,0x0E,0x38,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x7C,0x1C,0xFC,0x0F,0xF8,0x0F,0xF8,0x00,0x38,0x00,0xFC,0x00,0x00, // Q
0x00,0x00,0x00,0x00,0x1F,0xF0,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0F,0xF0,0x0F,0xF0,0x0E,0x70,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x1E,0x38,0x00,0x00,0x00,0x00, // R
0x00,0x00,0x00,0x00,0x0F,0xF0,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x00,0x0F,0xE0,0x07,0xF0,0x00,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x0F,0xF0,0x00,0x00,0x00,0x00, // S
0x00,0x00,0x00,0x00,0x1F,0xFC,0x19,0xCC,0x11,0xC4,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x07,0xF0,0x00,0x00,0x00,0x00, // T
0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x0F,0xE0,0x00,0x00,0x00,0x00, // U
0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x0E,0xE0,0x07,0xC0,0x03,0x80,0x00,0x00,0x00,0x00, // V
0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x9C,0x1C,0x9C,0x1C,0x9C,0x0F,0xF8,0x0F,0xF8,0x07,0x70,0x07,0x70,0x00,0x00,0x00,0x00, // W
0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x0E,0xE0,0x07,0xC0,0x03,0x80,0x03,0x80,0x07,0xC0,0x0E,0xE0,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x00,0x00,0x00,0x00, // X
0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x0E,0xE0,0x07,0xC0,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x0F,0xE0,0x00,0x00,0x00,0x00, // Y
0x00,0x00,0x00,0x00,0x1F,0xF8,0x1C,0x38,0x18,0x38,0x10,0x70,0x00,0xE0,0x01,0xC0,0x03,0x80,0x07,0x00,0x0E,0x08,0x1C,0x18,0x1C,0x38,0x1F,0xF8,0x00,0x00,0x00,0x00, // Z
0x00,0x00,0x00,0x00,0x07,0xF0,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0xF0,0x00,0x00,0x00,0x00, // [
0x00,0x00,0x00,0x00,0x10,0x00,0x18,0x00,0x1C,0x00,0x0E,0x00,0x07,0x00,0x03,0x80,0x01,0xC0,0x00,0xE0,0x00,0x70,0x00,0x38,0x00,0x1C,0x00,0x07,0x00,0x00,0x00,0x00, // <Backslash>
0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x07,0xF0,0x00,0x00,0x00,0x00, // ]
0x00,0x00,0x01,0x80,0x03,0xC0,0x07,0xE0,0x0E,0x70,0x1C,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ^
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0x7F,0xFF, // _
0x00,0x00,0x00,0x00,0x1C,0x00,0x1C,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // '
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE0,0x00,0x70,0x00,0x70,0x0F,0xF0,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x0F,0xD8,0x00,0x00,0x00,0x00, // a
0x00,0x00,0x00,0x00,0x1E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0F,0xF0,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x1B,0xF0,0x00,0x00,0x00,0x00, // b
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE0,0x1C,0x70,0x1C,0x70,0x1C,0x00,0x1C,0x00,0x1C,0x70,0x1C,0x70,0x0F,0xE0,0x00,0x00,0x00,0x00, // c
0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x70,0x00,0x70,0x00,0x70,0x0F,0xF0,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x0F,0xD8,0x00,0x00,0x00,0x00, // d
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE0,0x1C,0x70,0x1C,0x70,0x1F,0xF0,0x1C,0x00,0x1C,0x70,0x1C,0x70,0x0F,0xE0,0x00,0x00,0x00,0x00, // e
0x00,0x00,0x00,0x00,0x03,0xE0,0x07,0x70,0x07,0x70,0x07,0x00,0x07,0x00,0x1F,0xE0,0x1F,0xE0,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x1F,0xC0,0x00,0x00,0x00,0x00, // f
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xD8,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x0F,0xF0,0x07,0xF0,0x00,0x70,0x1C,0x70,0x0F,0xE0, // g
0x00,0x00,0x00,0x00,0x1E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0xF0,0x0F,0x38,0x0F,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x1E,0x38,0x00,0x00,0x00,0x00, // h
0x00,0x00,0x00,0x00,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x00,0x00,0x0F,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x0F,0xF8,0x00,0x00,0x00,0x00, // i
0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x00,0x03,0xF0,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x1C,0x70,0x0C,0xF0,0x07,0xE0, // j
0x00,0x00,0x00,0x00,0x1E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x38,0x0E,0x70,0x0E,0xE0,0x0F,0xC0,0x0E,0xE0,0x0E,0x70,0x0E,0x38,0x1E,0x38,0x00,0x00,0x00,0x00, // k
0x00,0x00,0x00,0x00,0x0F,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x0F,0xF8,0x00,0x00,0x00,0x00, // l
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF8,0x1C,0x9C,0x1C,0x9C,0x1C,0x9C,0x1C,0x9C,0x1C,0x9C,0x1C,0x9C,0x1C,0x9C,0x00,0x00,0x00,0x00, // m
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xE0,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x00,0x00,0x00,0x00, // n
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE0,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x0F,0xE0,0x00,0x00,0x00,0x00, // o
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0xF0,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0F,0xF0,0x0E,0x00,0x0E,0x00,0x1F,0x00, // p
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xB0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x1F,0xE0,0x00,0xE0,0x00,0xE0,0x01,0xF0, // q
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0xF0,0x0F,0xF8,0x0F,0x38,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x1F,0x00,0x00,0x00,0x00,0x00, // r
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE0,0x1C,0x30,0x1C,0x30,0x0F,0x80,0x03,0xE0,0x18,0x70,0x18,0x70,0x0F,0xE0,0x00,0x00,0x00,0x00, // s
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x07,0x00,0x1F,0xF0,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x70,0x07,0x70,0x03,0xE0,0x00,0x00,0x00,0x00, // t
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x0F,0xD8,0x00,0x00,0x00,0x00, // u
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x0E,0xE0,0x07,0xC0,0x03,0x80,0x00,0x00,0x00,0x00, // v
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x9C,0x1C,0x9C,0x0F,0xF8,0x07,0x70,0x07,0x70,0x00,0x00,0x00,0x00, // w
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0xE0,0x1C,0xE0,0x0F,0xC0,0x07,0x80,0x07,0x80,0x0F,0xC0,0x1C,0xE0,0x1C,0xE0,0x00,0x00,0x00,0x00, // x
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x07,0xF0,0x03,0xE0,0x00,0xE0,0x01,0xC0,0x1F,0x80, // y
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xE0,0x18,0xE0,0x11,0xC0,0x03,0x80,0x07,0x00,0x0E,0x20,0x1C,0x60,0x1F,0xE0,0x00,0x00,0x00,0x00, // z
0x00,0x00,0x00,0x00,0x01,0xF8,0x03,0x80,0x03,0x80,0x03,0x80,0x07,0x00,0x1C,0x00,0x1C,0x00,0x07,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x01,0xF8,0x00,0x00,0x00,0x00, // {
0x00,0x00,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x00,0x00, // |
0x00,0x00,0x00,0x00,0x1F,0x80,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x00,0xE0,0x00,0x38,0x00,0x38,0x00,0xE0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x1F,0x80,0x00,0x00,0x00,0x00, // }
0x00,0x00,0x00,0x00,0x1F,0x1C,0x3B,0x9C,0x39,0xDC,0x38,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ~
0x00,0x00,0x00,0x00,0x00,0xF0,0x01,0xF8,0x01,0x98,0x01,0x98,0x01,0xF8,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // градус  
0x00,0x00,0x00,0x00,0x1F,0xF8,0x0E,0x18,0x0E,0x08,0x0E,0x00,0x0E,0x00,0x0F,0xF0,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x1F,0xF0,0x00,0x00,0x00,0x00, // Б
0x00,0x00,0x00,0x00,0x1F,0xF8,0x0E,0x18,0x0E,0x08,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x1F,0x00,0x00,0x00,0x00,0x00, // Г
0x00,0x00,0x00,0x00,0x07,0xF0,0x0C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x3F,0xF8,0x30,0x18,0x20,0x08, // Д
0x06,0x60,0x00,0x00,0x1F,0xF8,0x0E,0x18,0x0E,0x08,0x0E,0x00,0x0E,0x30,0x0F,0xF0,0x0F,0xF0,0x0E,0x30,0x0E,0x00,0x0E,0x08,0x0E,0x18,0x1F,0xF8,0x00,0x00,0x00,0x00, // Ё
0x00,0x00,0x00,0x00,0x33,0xCC,0x19,0x98,0x19,0x98,0x19,0x98,0x0D,0xB0,0x0F,0xF0,0x0F,0xF0,0x1D,0xB8,0x19,0x98,0x19,0x98,0x19,0x98,0x33,0xCC,0x00,0x00,0x00,0x00, // Ж
0x00,0x00,0x00,0x00,0x17,0xE0,0x1E,0x70,0x1C,0x38,0x10,0x38,0x00,0x70,0x03,0xC0,0x03,0xC0,0x00,0x70,0x00,0x38,0x1C,0x38,0x1C,0x70,0x0F,0xE0,0x00,0x00,0x00,0x00, // З
0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0xF0,0x1D,0xF0,0x1F,0x70,0x1E,0x70,0x1C,0x70,0x1C,0x70,0x00,0x00,0x00,0x00, // И
0x03,0x80,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0xF0,0x1D,0xF0,0x1F,0x70,0x1E,0x70,0x1C,0x70,0x1C,0x70,0x00,0x00,0x00,0x00, // Й
0x00,0x00,0x00,0x00,0x03,0xF0,0x06,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x1C,0x70,0x00,0x00,0x00,0x00, // Л
0x00,0x00,0x00,0x00,0x1F,0xF0,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x00,0x00,0x00,0x00, // П
0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x0F,0xF0,0x07,0xF0,0x00,0x70,0x00,0x70,0x1C,0xE0,0x0F,0xC0,0x00,0x00,0x00,0x00, // У
0x00,0x00,0x00,0x00,0x1F,0xF0,0x33,0x98,0x33,0x98,0x33,0x98,0x33,0x98,0x33,0x98,0x33,0x98,0x33,0x98,0x1F,0xF0,0x03,0x80,0x03,0x80,0x07,0xC0,0x00,0x00,0x00,0x00, // Ф
0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1F,0xF8,0x00,0x18,0x00,0x08, // Ц
0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1F,0xF0,0x0F,0xF0,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x00, // Ч
0x00,0x00,0x00,0x00,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x3F,0xFC,0x00,0x00,0x00,0x00, // Ш
0x00,0x00,0x00,0x00,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x3F,0xFE,0x00,0x06,0x00,0x02, // Щ
0x00,0x00,0x00,0x00,0x3F,0x00,0x2E,0x00,0x2E,0x00,0x0E,0x00,0x0E,0x00,0x0F,0xF0,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x1F,0xF0,0x00,0x00,0x00,0x00, // Ъ
0x00,0x00,0x00,0x00,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x3F,0x9C,0x39,0xDC,0x39,0xDC,0x39,0xDC,0x39,0xDC,0x39,0xDC,0x3F,0x9C,0x00,0x00,0x00,0x00, // Ы
0x00,0x00,0x00,0x00,0x1F,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0F,0xF0,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x1F,0xF0,0x00,0x00,0x00,0x00, // Ь
0x00,0x00,0x00,0x00,0x0F,0xE0,0x1C,0x70,0x1C,0x38,0x00,0x38,0x00,0x38,0x03,0xF8,0x03,0xF8,0x00,0x38,0x00,0x38,0x1C,0x38,0x1C,0x70,0x0F,0xE0,0x00,0x00,0x00,0x00, // Э
0x00,0x00,0x00,0x00,0x3C,0xF8,0x1D,0x9C,0x1D,0x9C,0x1D,0x9C,0x1D,0x9C,0x1F,0x9C,0x1F,0x9C,0x1D,0x9C,0x1D,0x9C,0x1D,0x9C,0x1D,0x9C,0x3C,0xF8,0x00,0x00,0x00,0x00, // Ю
0x00,0x00,0x00,0x00,0x0F,0xF8,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1F,0xF0,0x0F,0xF0,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x38,0x78,0x00,0x00,0x00,0x00, // Я
0x00,0x00,0x00,0x00,0x00,0x18,0x07,0xF8,0x0F,0x00,0x0E,0x00,0x0E,0x00,0x0F,0xF0,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x07,0xF0,0x00,0x00,0x00,0x00, // б
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF0,0x0E,0x38,0x0E,0x38,0x0F,0xF0,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x1F,0xF0,0x00,0x00,0x00,0x00, // в
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF8,0x1C,0x38,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x00,0x00,0x00,0x00, // г
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x1F,0xF8,0x10,0x08,0x00,0x00, // д
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xC0,0x00,0x00,0x0F,0xE0,0x1C,0x70,0x1C,0x70,0x1F,0xF0,0x1C,0x00,0x1C,0x70,0x1C,0x70,0x0F,0xE0,0x00,0x00,0x00,0x00, // ё
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0xCC,0x19,0xCC,0x19,0xCC,0x0D,0xD8,0x07,0xF0,0x0D,0xD8,0x19,0xCC,0x19,0xCC,0x00,0x00,0x00,0x00, // ж
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE0,0x1C,0x70,0x00,0x70,0x03,0xE0,0x00,0x70,0x00,0x70,0x1C,0x70,0x0F,0xE0,0x00,0x00,0x00,0x00, // з
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0xF0,0x1D,0x70,0x1E,0x70,0x1C,0x70,0x1C,0x70,0x00,0x00,0x00,0x00, // и
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x78,0x0E,0xB8,0x0F,0x38,0x0E,0x38,0x0E,0x38,0x00,0x00,0x00,0x00, // й
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x38,0x0E,0x38,0x0E,0x70,0x0F,0xE0,0x0E,0x70,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x00,0x00,0x00,0x00, // к
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,0x07,0x38,0x07,0x38,0x07,0x38,0x07,0x38,0x07,0x38,0x07,0x38,0x0E,0x38,0x00,0x00,0x00,0x00, // л
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x38,0x38,0x38,0x3C,0x78,0x3A,0xB8,0x39,0x38,0x38,0x38,0x38,0x38,0x00,0x00,0x00,0x00, // м
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1F,0xF0,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x00,0x00,0x00,0x00, // н
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF0,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x00,0x00,0x00,0x00, // п
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF0,0x13,0x90,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00, // т
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x1F,0xF0,0x3B,0xB8,0x3B,0xB8,0x3B,0xB8,0x3B,0xB8,0x0F,0xF0,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00, // ф
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1F,0xF8,0x00,0x18,0x00,0x00, // ц
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x70,0x0F,0xF0,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x00, // ч
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x3F,0xFC,0x00,0x00,0x00,0x00, // ш
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x3F,0xFE,0x00,0x06,0x00,0x00, // щ
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x2E,0x00,0x0E,0x00,0x0F,0xF0,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0F,0xF0,0x00,0x00,0x00,0x00, // ъ
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x3F,0x9C,0x39,0xDC,0x39,0xDC,0x39,0xDC,0x3F,0x9C,0x00,0x00,0x00,0x00, // ы
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0F,0xF0,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0F,0xF0,0x00,0x00,0x00,0x00, // ь
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE0,0x1C,0x70,0x00,0x70,0x03,0xF0,0x00,0x70,0x00,0x70,0x1C,0x70,0x0F,0xE0,0x00,0x00,0x00,0x00, // э
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xF8,0x39,0x9C,0x39,0x9C,0x39,0x9C,0x3F,0x9C,0x39,0x9C,0x39,0x9C,0x38,0xF8,0x00,0x00,0x00,0x00, // ю
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x07,0xF8,0x0E,0x38,0x0E,0x38,0x1C,0x38,0x00,0x00,0x00,0x00, // я
}; 

// SevenSegNumFont.c
// Font Size	: 32x50
// Memory usage	: 2004 bytes
// # characters	: 10

fontdatatype SevenSegNumFont[2004] PROGMEM={
0x20,0x32,0x30,0x0A,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x60,0x0C,0xFF,0xFE,0xF0,0x1E,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3E,0x00,0x00,0x78,0x38,0x00,0x00,0x18,0x20,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x38,0x00,0x00,0x18,0x3E,0x00,0x00,0x78,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x1E,0x00,0x00,0xF0,0x0C,0xFF,0xFE,0x60,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 0
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xF0,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x78,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 1
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x60,0x00,0xFF,0xFE,0xF0,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0x78,0x01,0xFF,0xFE,0x18,0x03,0xFF,0xFF,0x88,0x0F,0xFF,0xFF,0xE0,0x27,0xFF,0xFF,0xC0,0x39,0xFF,0xFF,0x00,0x3E,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x0C,0xFF,0xFE,0x00,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 2
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x60,0x00,0xFF,0xFE,0xF0,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0x78,0x01,0xFF,0xFE,0x18,0x03,0xFF,0xFF,0x88,0x0F,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xC0,0x01,0xFF,0xFF,0x18,0x00,0x00,0x00,0x78,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0xF0,0x00,0xFF,0xFE,0x60,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 3
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x0C,0x00,0x00,0xF0,0x1E,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3E,0x00,0x00,0x78,0x39,0xFF,0xFE,0x18,0x23,0xFF,0xFF,0x88,0x0F,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xC0,0x01,0xFF,0xFF,0x18,0x00,0x00,0x00,0x78,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 4
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x00,0x0C,0xFF,0xFE,0x00,0x1E,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x39,0xFF,0xFE,0x00,0x23,0xFF,0xFF,0x80,0x0F,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xC0,0x01,0xFF,0xFF,0x18,0x00,0x00,0x00,0x78,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0xF0,0x00,0xFF,0xFE,0x60,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 5
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x00,0x0C,0xFF,0xFE,0x00,0x1E,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x39,0xFF,0xFE,0x00,0x23,0xFF,0xFF,0x80,0x0F,0xFF,0xFF,0xE0,0x27,0xFF,0xFF,0xC0,0x39,0xFF,0xFF,0x18,0x3E,0x00,0x00,0x78,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x1E,0x00,0x00,0xF0,0x0C,0xFF,0xFE,0x60,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 6
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x60,0x00,0xFF,0xFE,0xF0,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x78,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 7
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x60,0x0C,0xFF,0xFE,0xF0,0x1E,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3E,0x00,0x00,0x78,0x39,0xFF,0xFE,0x18,0x23,0xFF,0xFF,0x88,0x0F,0xFF,0xFF,0xE0,0x27,0xFF,0xFF,0xC0,0x39,0xFF,0xFF,0x18,0x3E,0x00,0x00,0x78,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x1E,0x00,0x00,0xF0,0x0C,0xFF,0xFE,0x60,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 8
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x60,0x0C,0xFF,0xFE,0xF0,0x1E,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3E,0x00,0x00,0x78,0x39,0xFF,0xFE,0x18,0x23,0xFF,0xFF,0x88,0x0F,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xC0,0x01,0xFF,0xFF,0x18,0x00,0x00,0x00,0x78,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0xF0,0x00,0xFF,0xFE,0x60,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // 9
};

 

slider
Offline
Зарегистрирован: 17.06.2014

forfrends пишет:

Вопрос по библиотеке UTFT: В библиотеке что я скачал присутствует расширенный набор шрифта - добавлен русский текст и некоторые иконки (смайлики, батирея, уровень сигнала...) вопрос как вызывать эти иконки?

 Что скачали и где? Для хороших иконок надо чтоб SPI микруха с ними на шилде стояла, с нее беруться большие разноцветные иконки. Соответственно чтоб ардуина была подключена к дисплею и этой микрухе. Она параллелится MicroSD , но имеет отдельно свой CS (F_CS) . Загуглите .

 Для простых спец символов заброшенных библиотекой в код программы, в ардуинку, используется косая черта и код символа . Для некоторых функций если следует затем обычный символ то надо кавычки закрыть и снова открыть

slider
Offline
Зарегистрирован: 17.06.2014

Пока все собрано, Проверьте для большого и семисегментного шрифта наличие пробела для затирки букв/цифр чтоб нулем или черным квадратом не затирать. А то в либе они случайной бякой затирались. Если отсутствует то надо его дополнить в символы больших шрифтов.

slider
Offline
Зарегистрирован: 17.06.2014

.

forfrends
Offline
Зарегистрирован: 24.02.2015

Либа "От СанСаныча": https://yadi.sk/d/UQHngzW-svzSH

Уже в примерах нашел русский. Да, там набор кавычек: (""\x99""o""\xa3"".c""\x9d\xa1\x97""o""\xa0\xab"") - читается как "(доп. символы)

 

forfrends
Offline
Зарегистрирован: 24.02.2015

Я тут накидал небольшую програмку для перевода русского текста в набор символов для UTFT и вставки в скетч:

http://portal4you.ucoz.ru/arduino/translater.rar

для примера: текст "Это пробный текст для перевода" будет переведен в :

\x93\xa4""o \xa3""po\x96\xa2\xab\x9e"" \xa4""e\x9f""c\xa4"" \x99\xa0\xaf"" \xa3""epe\x97""o\x99""a

это для быстрого вставки текста в скетч, чтобы не сидеть и не переводить по-букве. Можно и спец символы использовать (батарея, антена). В программе есть справка, там все описано.

Писал все в среде Autoit. Исходный код (кому надо):

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Rus 2 UTFT", 290, 251, 226, 131)
$Edit1 = GUICtrlCreateEdit("", 8, 8, 273, 89,$ES_AUTOVSCROLL+$WS_VSCROLL)
$Edit2 = GUICtrlCreateEdit("", 8, 104, 273, 89,$ES_AUTOVSCROLL+$WS_VSCROLL)
$Button1 = GUICtrlCreateButton("Перевести", 152, 208, 115, 33, $WS_GROUP)
$Radio1 = GUICtrlCreateRadio("SmallFont+", 16, 208, 73, 17)
GUICtrlSetState ($radio1,$GUI_CHECKED)
$Radio2 = GUICtrlCreateRadio("BigFont", 16, 224, 81, 17)
$Button2 = GUICtrlCreateButton("?", 104, 210, 35, 17, $WS_GROUP)
$Button3 = GUICtrlCreateButton("?", 104, 224, 35, 17, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Dim $s = chr(34)&chr(34)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			$text = GUICtrlRead($Edit1)
			Font()
			GUICtrlSetData ($Edit2,$text)
		Case $Button2
			MsgBox(64, "Справка", "Перевод русского языка для стандартного шрифта SmallFont." & @CRLF & "Переведены все буквы русского алфавита, строчные и заглавные. Так же можно вызвать спец. символы путем ввода команды:" & @CRLF & @CRLF & "BATTFULL - вывод значка заряженной батареи" & @CRLF & "BATT75 - значек батареи 75%" & @CRLF & "BATT50 - значек батареи 50%" & @CRLF & "BATT25 - значек батареи 25%" & @CRLF & "BATTEMPTY - пустая батарея" & @CRLF & "сигнал100 - антена 100%" & @CRLF & "сигнал75 - антена 75%" & @CRLF & "сигнал50 - антена 50%" & @CRLF & "сигнал25 - антена 25%" & @CRLF & "с.вверх - стрелка вверх" & @CRLF & "с.вниз - стрелка вниз" & @CRLF & "с.вправо - стрелка вправо" & @CRLF & "с.влево - стрелка влево" & @CRLF & "с.вверхвправо - стрелка вверх вправо" & @CRLF & "с.внизвправо - стрелка вниз вправо" & @CRLF & "градусс - значек градуса и С" & @CRLF & "градусф - значек градуса и F" & @CRLF & @CRLF & "Команды НЕ чувствительны к регистру, их можно писать как строчными нак и заглавными")
		Case $Button3
			MsgBox(64, "Справка", "Перевод русского языка для стандартного шрифта BigFont." & @CRLF & "Переведены все буквы русского алфавита, строчные и заглавные. Так же можно вызвать спец. символ гардуса Цельсия или Фаренгейта (смотрите справку наSmallFont). Остальные Спец символы отсутствуют!")
	EndSwitch
WEnd

Func Font()
	$text = StringReplace($text, "градусс", $s&"\x7f"&$s&"C")
	$text = StringReplace($text, "градусф", $s&"\x7f"&$s&"F")
	If BitAND(GUICtrlRead($Radio1), $GUI_CHECKED) = $GUI_CHECKED Then
		$text = StringReplace($text, "BATTFULL", $s&"\xb0"&$s)
		$text = StringReplace($text, "BATT75", $s&"\xb1"&$s)
		$text = StringReplace($text, "BATT50", $s&"\xb2"&$s)
		$text = StringReplace($text, "BATT25", $s&"\xb3"&$s)
		$text = StringReplace($text, "BATTEMPTY", $s&"\xb4"&$s)
		$text = StringReplace($text, "сигнал100", $s&"\xb5"&$s)
		$text = StringReplace($text, "сигнал75", $s&"\xb6"&$s)
		$text = StringReplace($text, "сигнал50", $s&"\xb7"&$s)
		$text = StringReplace($text, "сигнал25", $s&"\xb8"&$s)
		$text = StringReplace($text, "с.вверх", $s&"\xb9"&$s)
		$text = StringReplace($text, "с.вниз", $s&"\xba"&$s)
		$text = StringReplace($text, "с.вправо", $s&"\xbb"&$s)
		$text = StringReplace($text, "с.влево", $s&"\xbc"&$s)
		$text = StringReplace($text, "с.вверхвправо", $s&"\xbd"&$s)
		$text = StringReplace($text, "с.внизвправо", $s&"\xbe"&$s)
	EndIf
	$text = StringReplace($text, "А", "A",0,1)
	$text = StringReplace($text, "Б", $s&"\x80"&$s,0,1)
	$text = StringReplace($text, "В", "B",0,1)
	$text = StringReplace($text, "Г", $s&"\x81"&$s,0,1)
	$text = StringReplace($text, "Д", $s&"\x82"&$s,0,1)
	$text = StringReplace($text, "Е", "E",0,1)
	$text = StringReplace($text, "Ё", $s&"\x83"&$s,0,1)
	$text = StringReplace($text, "Ж", $s&"\x84"&$s,0,1)
	$text = StringReplace($text, "З", $s&"\x85"&$s,0,1)
	$text = StringReplace($text, "И", $s&"\x86"&$s,0,1)
	$text = StringReplace($text, "Й", $s&"\x87"&$s,0,1)
	$text = StringReplace($text, "К", "K",0,1)
	$text = StringReplace($text, "Л", $s&"\x88"&$s,0,1)
	$text = StringReplace($text, "М", "M",0,1)
	$text = StringReplace($text, "Н", "H",0,1)
	$text = StringReplace($text, "О", "O",0,1)
	$text = StringReplace($text, "П", $s&"\x89"&$s,0,1)
	$text = StringReplace($text, "Р", "P",0,1)
	$text = StringReplace($text, "С", "C",0,1)
	$text = StringReplace($text, "Т", "T",0,1)
	$text = StringReplace($text, "У", $s&"\x8A"&$s,0,1)
	$text = StringReplace($text, "Ф", $s&"\x8B"&$s,0,1)
	$text = StringReplace($text, "Х", "X",0,1)
	$text = StringReplace($text, "Ц", $s&"\x8C"&$s,0,1)
	$text = StringReplace($text, "Ч", $s&"\x8D"&$s,0,1)
	$text = StringReplace($text, "Ш", $s&"\x8E"&$s,0,1)
	$text = StringReplace($text, "Щ", $s&"\x8F"&$s,0,1)
	$text = StringReplace($text, "Ь", $s&"\x92"&$s,0,1)
	$text = StringReplace($text, "Ы", $s&"\x91"&$s,0,1)
	$text = StringReplace($text, "Ъ", $s&"\x90"&$s,0,1)
	$text = StringReplace($text, "Э", $s&"\x93"&$s,0,1)
	$text = StringReplace($text, "Ю", $s&"\x94"&$s,0,1)
	$text = StringReplace($text, "Я", $s&"\x95"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "а", "a",0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "б", $s&"\x96"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "в", $s&"\x97"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "г", $s&"\x98"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "д", $s&"\x99"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "е", "e",0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "ё", $s&"\x9a"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "ж", $s&"\x9b"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "з", $s&"\x9c"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "и", $s&"\x9d"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "й", $s&"\x9e"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "к", $s&"\x9f"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "л", $s&"\xa0"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "м", $s&"\xa1"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "н", $s&"\xa2"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "о", "o",0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "п", $s&"\xa3"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "р", "p",0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "с", "c",0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "т", $s&"\xa4"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "у", "y",0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "ф", $s&"\xa5"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "х", "x",0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "ц", $s&"\xa6"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "ч", $s&"\xa7"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "ш", $s&"\xa8"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "щ", $s&"\xa9"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "ь", $s&"\xac"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "ы", $s&"\xab"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "ъ", $s&"\xaa"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "э", $s&"\xad"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "ю", $s&"\xae"&$s,0,1)
	$TEXT = sTRINGrEPLACE($TEXT, "я", $s&"\xaf"&$s,0,1)
	$text = StringReplace($text, $s&$s, $s)
	$text = StringReplace($text, $s & "\x", "\x")
EndFunc

 

arduinec
Offline
Зарегистрирован: 01.09.2015

forfrends пишет:

Вопрос по библиотеке UTFT: В библиотеке что я скачал присутствует расширенный набор шрифта - добавлен русский текст и некоторые иконки (смайлики, батирея, уровень сигнала...) вопрос как вызывать эти иконки?

В теме http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru... в основном описывается как руссифицировать библиотеку Adafruit-GFX, но есть пример как использовать специальные символы из шрифта.

forfrends
Offline
Зарегистрирован: 24.02.2015

Спасибо, уже разобрался. Даже небольшую програмку написал в помощь - смотрите пост выше.

gtrance
Offline
Зарегистрирован: 15.09.2016

Программа определения типа монитора выдала следующее:

start... 
UTFT normal   pin29-22(PORTA)-byteH(DB15-0) , pin37-30(PORTC)-byteL(DB7-0)
 
register 00h for ILI9320(9320), ILI9325(9325), ILI9326(9326), SSD1289(1289,8989)
                 HX8347D(047),  HX8347G(075),  HX8352A(052),  HX8352B(065), HX8352C(072)
                 R61509V(B509), R61505W(C505), SPFD5420A(5408) 
if  (0 93 0 27) -> 8bit  .  if  (93 27 93 27) -> 16bit 
register 0 0
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0
 
register EFh for ILI9327(0 02 04 93 27 FF),   
register 0 EF
1 Parameter   0 EF
2 Parameter   0 EF
3 Parameter   0 EF
4 Parameter   0 EF
5 Parameter   0 EF
6 Parameter   0 EF
 
register BFh for ILI9481(0 0 94 81 xx xx)  
register 0 BF
1 Parameter   0 BF
2 Parameter   0 BF
3 Parameter   0 BF
4 Parameter   0 BF
5 Parameter   0 BF
6 Parameter   0 BF
 
register D3h for ILI9488(0 0 94 88 xx xx)   
register 0 D3
1 Parameter   0 D3
2 Parameter   0 D3
3 Parameter   0 D3
4 Parameter   0 D3
5 Parameter   0 D3
6 Parameter   0 D3
 
register 04h for HX8357(?DA-DC), HX8353(?80-85),   
register 0 4
1 Parameter   0 4
2 Parameter   0 4
3 Parameter   0 4
4 Parameter   0 4
5 Parameter   0 4
6 Parameter   0 4
 
Какой это контроллер получается?
slider
Offline
Зарегистрирован: 17.06.2014

gtrance , врятли дисплей у вас подлючен как надо. 

вы не внимательно читали тему. изучите повнимательней. иначе бы у вас уже все получилось.

// вы не использовали "вставка-редактирование кода" , и это не последняя читалка.  в общем дисплей неправильно подключен.

gtrance
Offline
Зарегистрирован: 15.09.2016

все заработало со старой IDE  и старой библиотекой.

gtrance
Offline
Зарегистрирован: 15.09.2016

*

jafff
Offline
Зарегистрирован: 04.10.2014

Добрый день, есть такой экран https://www.ghielectronics.com/downloads/man/LQ043T1DG01.pdf

LQ043T1DG01, вставлен в некую плату, видимо отладочный кит, но неважно, так вот возможно ли этот экран подключить а ардуине, например к меге, подскажите куда копать, с чего начать.

slider
Offline
Зарегистрирован: 17.06.2014

jafff пишет:

Добрый день, есть такой экран https://www.ghielectronics.com/downloads/man/LQ043T1DG01.pdf

LQ043T1DG01, вставлен в некую плату, видимо отладочный кит, но неважно, так вот возможно ли этот экран подключить а ардуине, например к меге, подскажите куда копать, с чего начать.

когда ж удосужитесь читать хотябы первую страницу темы, ответы на эти диспы уже были , причем на каждой странице

comment-91565

comment-192094

comment-94551

ничего вы с ними не сделаете , раз спрашиваете.

еще тема с RGB интерфейс дисплей pomogite-pozhaluista-podklyuchit-kitaiskii-tft-displei-k-arduino    

jafff
Offline
Зарегистрирован: 04.10.2014

Спасибо болшьшое, вы так любезны, ответив на мой вопрос о великий гуру, а если честно то неx@й вы@бывaться, ответил спокойно и все, а то читай учись, просто помоги человеку и все.. попробуй найди в куче постов что это именно твой дисплей...

forfrends
Offline
Зарегистрирован: 24.02.2015

jafff, может так быть что кроме вас с таким дисплеем никто не сталкивался. Лучше чем вы никто с ним не разберется. В этой теме форума приведены 100% работающие МЕТОДЫ. Ну и приведены примеры где эти методы сработали и получилось подключить и запустить дисплей. Ваш вопрос задает каждый новый в теме, и ответ всегда один - прочтите тему. Это поможет понять принцыпы "победы" над дисплеями. Не воспринимайте все в штыки, мы поможем чем сможем, просто и сами приложите усилия, ведь кроме вас никто не сможет использовать ваш дисплей.

diger67
Offline
Зарегистрирован: 25.07.2015

Да, теперь я понимаю почему многие на форуме отправляют в тему "ищу исполнителя".

forfrends
Offline
Зарегистрирован: 24.02.2015

Ну что же вы так сразу... Slider дал хорошие ссылки - там все коротко и четко написано по таким дисплеям как у вас.

Вам действительно следовало почитать тему - вы не сможете использовать этот дисплей на ардуине, так как у него нет видеопамяти. Подробнее смотрите в постах выше, Slider писал о подобных дисплеях. 

diger67
Offline
Зарегистрирован: 25.07.2015

Это я не вам, это я для человека писал. А на 2560 можно попробовать, поставить штуки 4 внешней  SRAM сформировать Vsink, Hsink итд. Если найдет или разберется как прицепить 565ру5 можно и динамическую память. Только работать будет не очень. Как иксперимент можно взять ППЗУ, прошить в них какой то спрайт на весь экран и тупо вывести, это для отладки протокола обмена. Ну а потом можно и дальше двигаться.