А разве нельзя эти же значения (2Ah и 2Bh) просто прописать в initlcd.h? А дальше пока программ выполняется они не изменятся. Все равно ведь при инициализации дисплея эти параметры прописываются. Или я что-то не понимаю? Может мы говорим об одном и том же?
Просто я хочу внести эти настройки в initlcd.h и больше к ним не возвращаться. Что бы в скетче не писать Х+24 а просто Х вывести точку в координатах 0,0 дисплея (24,0 - координаты памяти).
Если вариантов нет кроме ка всегда прибавлять +24, то их, я так понимаю, нужно прописать в UTFT.cpp? Где и как?
Если вы не будите использовать ротацию изображения (поворот вокруг оси на 90, 180, 270, 360 градусов) можите один раз инициализировать и забыть.
вобщем идея такова если у вас изображение ушло за верхнюю границу, то прибавляем к переменной Y0 количество пикселей за областью видимости, так же поступаем и с X0, оно у нас ушл за левый край, значит надо сместьть нулевой пиксел на количество скрытых пикселей.
чтоб пока не разбираться с 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; ,
-нет, как раз таки меняются. каждый раз когда отправляются координаты пикселя для его рисования, и цвет пикселя тоже ими передается. т.е. это не постоянная величина , а всегда переменная. Если в ините задать границы - по идее контроллер должен был создать окно в которое буде выводиться пиксели , мож существует какая волшебная команда чтоб он запомнил это окно, но этого я не нашел, поэтому в ините можно что угодно туда занести и это никак не влияет.
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_DATA(0x22);// 0x42 = Rotate display 180 deg. , в двоичном коде это 0b001000010 , пробовать менять надо 0 GS SS SM ISC[3:0] это 6,5,4 биты. Т.е. подставляйте
Из этого было немного сложно понять что за контроллер стоит. Дисплей отложил в сторону на некоторое время. Когда вновь взялся за него, то неправильно собрал на макетке резисторные делители (дело было ночью, спать хотелось ужасно...) и подал на дасплей 4.6 вольт вместо 3.3в. и так по всем пинам... НО! Читалка как-то "достучалась" до контроллера и дисплей выдал немного другую инфу:
Контроллер оказался 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 то есть вместо
slider, не вводите в заблуждение человека. И всех остальных. Регистры 2Ah и 2Bh используются для установки рамера скрина. Размещать его можно и в ините, и в setxy, и в тексте скетча, а в правильных компиляторах main.c. Главное помнить, каждый раз когда вы задвете новые параметры высоты столбца и ширины скрина старые параметры становяться невалидными, а попросту поверх них вы записываете новые размеры рабочей области экрана. Так можно реализовать сначала заполнение всего экрана обоями, а потом указав меньшую область выводить в нее например слайдшой ввиде динамического изображения (псевдо видео). Делается это зачастую из за недостаточного RAM на борту м/к и низкого FPS, но дает возможность использовать модифицированную функцию последовательного заполнения выбранной области, выводя картинку за картинкой, создавая илюзию видео. такимже образом можно выводить эконки заданного размера снизив нагрузку на м/к и повысив скорость вывода.
diger67, это и так понятно, что данный дисплей работает так. Заблуждения нет, а просто процесс изучения дисплея. Проблемой было то что вроде как в даташите можно "сместить" область рабочей памяти и сделать константой (регистры 2Ah, 2Bh и 2Ch), а на деле это все то что вы описали.
Кстати по даташиту дисплей можно подключить по SPI. Режим работы задается подтягиванием "ножек" IM2, IM1 и IM0 к 0 или 1. Попробую на шлейфе их найти. О результатах (если таковые будут) отпишусь.
Так сказать сложно, я покупал tft панели, там просто были выведены пины на разъем, а коммутацию делал на плате. Разбирая при изучении готовые шилды сталкивался с размещением перемычек прямо на шлейфе. То что вы нашли, не факт то что это пины конфигурации.
здоорово, что победили дисп. :))) хороший, большой :)
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 дисплеев есть в инете и ютубе.
В даташите ili9486 указано что в SPI режиме WRX это SCL . В либах обычно прокоментировано какие пины куда. mosi miso sck для аппаратного однозначны, а другие можно переназначать на какие пожелаете.
Завести такой большой дисп на 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ом , мало ли при переходные процессы, чтоб выхода не уперлись друг в друга.
Да, читал что 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. Ну да ладно, буду в скетче это корректировать.
Попробую еще татч подключить. Что-то я забыл про него упомянуть.
Только что попробовал подключить к ДУЕ - библиотека 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 компилируется с ошибками, но загружается. При этом дисплей молчит.
можете изменить (подредактировать) свой пост , думаю просто описка
По пунктам 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 параметров(данных). Конечно библиотека это всё делает сама, мы только подставляем цифры.
немного оффтоп. ( как подключить на телефон другой дисплей )
Если у вас сломался на телефоне дисплей , и такого нет рядом в продаже , то вкорячте что есть под рукой, который и неподходит даже . :)
просто близкому человеку нужны были контакты, на симку скопировать :) // софтины не хотелось искать и с ними разбираться.
И главное - надежно примотать скотчем :)
родной дисп 2.4" ili9341 , в библиотеке UTFT пошарил по папкам драйверов UTFT\tft_drivers , у большинства схожие setxy.h , значит и инит подойдёт 99% . попался под руку 2.8" ili9338 от Alcatel . Подключить все, кроме RD (его на + , чтоб дисп всегда был на приёме) и прочей лабуды типа TE , FMARK , ... которая и не используется при обычном подключении к ардуино . Все оба питания от пина питания на котором +3.3в , а не 1.8в.
Если ставите дисп с совершенно другим контроллером как здесь, то надо оставлять старый дисплей подключенным, чтобы телефон опознал его родной дисп на месте (ID контроллера, и иногда производитель ставит резистор или делитель на шлейфе чтоб типа только его подходили дисплеи). Таким образом второй дисп просто висит параллельно в режиме приёма.
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)
p.masyukov, прочитали бы пред. страницы , уже отвечал на этот вопрос. ещё добалю что в планшетниках и навигаторах используют мощные процы , поэтому дешёвые дисплеи в которых нет контроллеров с видеопамятью (своего рода видеокарт). Поэтому их можно подключить только через спецплаты выполняющих эту роль. Узнав цену вы раздумаете что либо с ним делать. Иначе бы вы запустили бы уже его на малом разрешении.
chugun, это вопрос к вам. У вас же есть этот дисплей, вам и исследовать его. Разве что где-то вы ошиблись в подключении, раз читалка ничего не выдала. прочитайте тему, в последних сообщениях последние варианты читалок.
forfrends, как бы время чтоб это исследовать. Диспы по идее должны быть у меня с выведенными SDA .
Гляньте даташит ili9341, это же распространенный arduino SPI, тем более либа с аппаратным дружит. Можно еще глянуть pdf к UTFT , там должно быть описано подключение SPI "4пин" и "5пин" . В примере UTFT\examples\Arduino (AVR)\UTFT_Demo_320x240_Serial написано
Уважаемые slider и forfriends , тему то я читал ... С подключением всё ровно, т.к. экран снят с рабочего телефона и управляющие сигналы не плохо наблюдаются и различаются при помощи осцилографа, а именно RST, CS, RS, WR, RD, D0...D15 . Был бы лог.сканер - можно было бы снять инициализацию при включении телефона, но ...
Читалка у меня своя, т.к. пишу в CodeVisionAVR и судя по предыдущим постам - это не единственный экран у которого чтение ID возвращает нули.
Повторюсь - варианты инициализации пробовал для SPFD 5420A и ILI 9326 (т.к. именно эти драйверы поддерживают экраны с разрешением 240x400) - безрезультатно.
Вопрос оставляю открытым - может у кого имеется инфа по данному дисплею YDE FPC 32 T902 A1 ( фото выше ) ...
там идет чтение не только по нулевому регистру, а по всем доступным. Посмотрите код и попробуйте переделать для CVAVR. ID не всегда лежит по 0-му адресу. Кстати, не обязательно что бы контроллер поддерживал ваше разрешение. Могут поставить дисплей с меньшим разрешением чем выдает контроллер. Установленный у вас контроллер вполне может иметь разрешение 272х480 или 320х480, а использовать только часть видеопамяти. Советую попробовать иниты от других контроллеров.
forfrends , он походу в теме , оставьте, раз в другой оболочке сам написал. и осцилом полез.
У меня тож разные диспы 200х400 выдавали нули, закинул . пока через пару месяцев не вернулся к ним снова. оказалось управляющие пины по другому распологались там, не так как думал. подключил по другому и считалось всё. Бывали ещё пины (im) переворачивающие байты (8и8 //8080 8086), как ниббы в байте . бывало что пришлось задержки в читалку вставлять, для полных 16ти байтовых ответов немного иначе оказалось читалка должна читать (это можно проследить по изменениям в читалках до последних версий). Бывало что на шлейфе кондёр стоял на управляющем пине, поэтому через 10ком заваливался импульс. Считаю простой вариант это использовать для чтения ардуину Мегу, или немного портировать на MegaCore atmega128, там тоже есть цельные 8ми битные порты, так чтобы оставался аппаратный RX TX чтоб посмотреть большой ответ в мониторе порта.
// драйверов поддерживающих 240x400 много и они разные.
Эх, похоже придется затею с SPI отложить. Сильно узкие дорожки. Нет у меня навыка паять такею мелочь, велика вероятность что только испорчу дисплей. НО! По ходу все возможно было сделать. slider, вы сами и написали ответ: UTFT myGLCD(DMTFT28105,MOSI,SCK,10,NOTINUSE,9) для связи используется только MOSI (SDA). Да и на других сайтах нашел ту же инфу. Может чуток поднаберусь опыта - попробую. А пока разберусь еще с 3-мя дисплеями. Лежат и ждут своего часа :)
// Мне вот только странно что на ДУЕ ничего не заработало. Попробую стандартную (не правленную) библиотеку, может скомпилируется, а то не хочет.
Уже не плохо, хоть какие-то наводящие ответы, спасибо товарищи !!!
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.
chugun, если взять ту же библиотеку UTFT, то в ней есть папка tft_drivers, в ней по папкам рассортированы контроллеры и инициализации к ним. Можно их испольховать. Лучше оставьте первую читалку, она только по 0-му адресу читает, возьмите читалку №3, ссылку давал выше. Она 100% вам выдаст какую-то полехную информацию.
///
Вопрос: как подключать татч?? На самом татче 4 пина, а все примеры идут с 5-и пиновыми настройками. Как быть? Наверное на шилдах стоят какие-то контроллеры татча? Если подключать на прямую, то нужна ли какая-то обвязка (резисторы конденсаторы)? Принцип работы татча знаю: два края "+" и "-", с других - чтение. Но хотелось бы что бы это заработало на библиотеке UTouch. Или может есть другие варианты?
....Ещё вопрос по самой первой читалке из начала темы - разве чтение выполняется дерганьем WR при низком RD ??? Судя по даташиту на SPFD5420 - чтение происходит при дерганье RD, при высоком уровне на WR...
да, в первой читалке был какойто косяк, но она работала ибо это для 16ти бит проканывало, (важны спады и подъемы RD, задержки, по pdf после спада получите ноли , но через небольшое время - достоверная инфа, Дальше после подъема , после небольшого времени инфа ещё сколько-то существует потом пропадает - получите ноли , гляньте хорошенько картинку Read Cycle Sequence ). В последних читалках вроде все как надо.
Возможно где и ошибаюсь, но понял и увидел так (что дергать 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 "
Для всяких двухрядных надо искать что то типа " double row pcb " их тоже много всяких разных и на любой шаг
разъемы под них что то типа " lcd tft connector "
В настоящее время продаются шилды и с емкостными тачами (Они дороже) , у продавцов есть примеры под них. Значит можно приладить емкостные тачи какие есть (хотя в местных магазах они бывают дешевле чем резистивные), главное найти под них уже написанную либу у продавцов шилдов или в гугле.
Нет, он точно 8 битный. Спаял с доски 8 бит на шлейфе, потом тупо 8 пустых контактов даже не разведены на сборки. Реагирует только на ili932x и то какой то призрак на 10-15 процентах экрана выводится. Статейка по ссылке помогла при ремонте битого индикатора, там дело как раз было в сигналах IM0-2, менял на то что было в инете на али подходящее по распиновке.
Вопрос по библиотеке 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
};
Вопрос по библиотеке UTFT: В библиотеке что я скачал присутствует расширенный набор шрифта - добавлен русский текст и некоторые иконки (смайлики, батирея, уровень сигнала...) вопрос как вызывать эти иконки?
Что скачали и где? Для хороших иконок надо чтоб SPI микруха с ними на шилде стояла, с нее беруться большие разноцветные иконки. Соответственно чтоб ардуина была подключена к дисплею и этой микрухе. Она параллелится MicroSD , но имеет отдельно свой CS (F_CS) . Загуглите .
Для простых спец символов заброшенных библиотекой в код программы, в ардуинку, используется косая черта и код символа . Для некоторых функций если следует затем обычный символ то надо кавычки закрыть и снова открыть
Пока все собрано, Проверьте для большого и семисегментного шрифта наличие пробела для затирки букв/цифр чтоб нулем или черным квадратом не затирать. А то в либе они случайной бякой затирались. Если отсутствует то надо его дополнить в символы больших шрифтов.
это для быстрого вставки текста в скетч, чтобы не сидеть и не переводить по-букве. Можно и спец символы использовать (батарея, антена). В программе есть справка, там все описано.
Писал все в среде Autoit. Исходный код (кому надо):
Вопрос по библиотеке UTFT: В библиотеке что я скачал присутствует расширенный набор шрифта - добавлен русский текст и некоторые иконки (смайлики, батирея, уровень сигнала...) вопрос как вызывать эти иконки?
LQ043T1DG01, вставлен в некую плату, видимо отладочный кит, но неважно, так вот возможно ли этот экран подключить а ардуине, например к меге, подскажите куда копать, с чего начать.
LQ043T1DG01, вставлен в некую плату, видимо отладочный кит, но неважно, так вот возможно ли этот экран подключить а ардуине, например к меге, подскажите куда копать, с чего начать.
когда ж удосужитесь читать хотябы первую страницу темы, ответы на эти диспы уже были , причем на каждой странице
Спасибо болшьшое, вы так любезны, ответив на мой вопрос о великий гуру, а если честно то неx@й вы@бывaться, ответил спокойно и все, а то читай учись, просто помоги человеку и все.. попробуй найди в куче постов что это именно твой дисплей...
jafff, может так быть что кроме вас с таким дисплеем никто не сталкивался. Лучше чем вы никто с ним не разберется. В этой теме форума приведены 100% работающие МЕТОДЫ. Ну и приведены примеры где эти методы сработали и получилось подключить и запустить дисплей. Ваш вопрос задает каждый новый в теме, и ответ всегда один - прочтите тему. Это поможет понять принцыпы "победы" над дисплеями. Не воспринимайте все в штыки, мы поможем чем сможем, просто и сами приложите усилия, ведь кроме вас никто не сможет использовать ваш дисплей.
Ну что же вы так сразу... Slider дал хорошие ссылки - там все коротко и четко написано по таким дисплеям как у вас.
Вам действительно следовало почитать тему - вы не сможете использовать этот дисплей на ардуине, так как у него нет видеопамяти. Подробнее смотрите в постах выше, Slider писал о подобных дисплеях.
Это я не вам, это я для человека писал. А на 2560 можно попробовать, поставить штуки 4 внешней SRAM сформировать Vsink, Hsink итд. Если найдет или разберется как прицепить 565ру5 можно и динамическую память. Только работать будет не очень. Как иксперимент можно взять ППЗУ, прошить в них какой то спрайт на весь экран и тупо вывести, это для отладки протокола обмена. Ну а потом можно и дальше двигаться.
А разве нельзя эти же значения (2Ah и 2Bh) просто прописать в initlcd.h? А дальше пока программ выполняется они не изменятся. Все равно ведь при инициализации дисплея эти параметры прописываются. Или я что-то не понимаю? Может мы говорим об одном и том же?
Просто я хочу внести эти настройки в initlcd.h и больше к ним не возвращаться. Что бы в скетче не писать Х+24 а просто Х вывести точку в координатах 0,0 дисплея (24,0 - координаты памяти).
Если вариантов нет кроме ка всегда прибавлять +24, то их, я так понимаю, нужно прописать в UTFT.cpp? Где и как?
Если вы не будите использовать ротацию изображения (поворот вокруг оси на 90, 180, 270, 360 градусов) можите один раз инициализировать и забыть.
можете мне помочь с инициализацией? Вращать не планирую
Попробуйте записать
2Ah (0x00), (0x18), (0x01), (0x3F)
2Bh (0x00), (0x18), (0x01), (0xDF)
вобщем идея такова если у вас изображение ушло за верхнюю границу, то прибавляем к переменной Y0 количество пикселей за областью видимости, так же поступаем и с X0, оно у нас ушл за левый край, значит надо сместьть нулевой пиксел на количество скрытых пикселей.
Я это уже пробовал - реакции никакой. Почему - не понятно.
Библиотеку брал здесь (в конце сообщения): http://arduino.ru/forum/apparatnye-voprosy/35-tft-lcd-krasnyi-megovskii-mega-2560-r3-resheno-kak-reshit-drugie#comment-204256
Использую эти иниты:
initlcd.h:
setxy.h:
Мне кажется что настройки сбиваются именно в файле setxy.h
Я это уже пробовал - реакции никакой. Почему - не понятно.
Библиотеку брал здесь (в конце сообщения): http://arduino.ru/forum/apparatnye-voprosy/35-tft-lcd-krasnyi-megovskii-mega-2560-r3-resheno-kak-reshit-drugie#comment-204256
Использую эти иниты:
initlcd.h:
setxy.h:
Мне кажется что настройки сбиваются именно в файле setxy.h
Не кажется, а так и есть. Вы используя setxy.h записываете новые значения в регистры 2Ah и 2Bh поверх ранее записанных.
чтоб пока не разбираться с Partial Area 0x30 Vertical Scrolling Definition 0x33h
1. попробуйте тогда пока оставить disp_x_size = 319 ; disp_y_size = 479 ; (и для всех остальных опытов что ниже тоже) чтоб был математический запас. и запустите пример UTFT_Demo_480x320, какая картинка будет ? должна на весь экран развернуться. В таком варианте и можно в своем скетче , везде к нужной координате поприбавлять +24.
А разве нельзя эти же значения (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
5. попробуйте пункт.4 с настройками disp_x_size = 271 ; disp_y_size = 479 ; и примером UTFT_Demo_480x272
В общем результат:
Дисплей от китайского Samsung S5, чуть меньше 4", разрешение 480х272.
Еще фото дисплея: http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=1#comment-168028
Надпись на шлейфе дисплея:
Читалки выдали странную инфу:
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 0start... 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:
В UTFT.cpp нужно прописать следующее разрешение дисплея:
1) дописать в самом начале setxy.h следующие строчки строчки:
Нужно писать:
Вызов инита:
Ссылка на подправленную библиотеку (в конце сообщения): http://arduino.ru/forum/apparatnye-voprosy/35-tft-lcd-krasnyi-megovskii-mega-2560-r3-resheno-kak-reshit-drugie#comment-204256
slider, не вводите в заблуждение человека. И всех остальных. Регистры 2Ah и 2Bh используются для установки рамера скрина. Размещать его можно и в ините, и в setxy, и в тексте скетча, а в правильных компиляторах main.c. Главное помнить, каждый раз когда вы задвете новые параметры высоты столбца и ширины скрина старые параметры становяться невалидными, а попросту поверх них вы записываете новые размеры рабочей области экрана. Так можно реализовать сначала заполнение всего экрана обоями, а потом указав меньшую область выводить в нее например слайдшой ввиде динамического изображения (псевдо видео). Делается это зачастую из за недостаточного RAM на борту м/к и низкого FPS, но дает возможность использовать модифицированную функцию последовательного заполнения выбранной области, выводя картинку за картинкой, создавая илюзию видео. такимже образом можно выводить эконки заданного размера снизив нагрузку на м/к и повысив скорость вывода.
diger67, это и так понятно, что данный дисплей работает так. Заблуждения нет, а просто процесс изучения дисплея. Проблемой было то что вроде как в даташите можно "сместить" область рабочей памяти и сделать константой (регистры 2Ah, 2Bh и 2Ch), а на деле это все то что вы описали.
Кстати по даташиту дисплей можно подключить по SPI. Режим работы задается подтягиванием "ножек" IM2, IM1 и IM0 к 0 или 1. Попробую на шлейфе их найти. О результатах (если таковые будут) отпишусь.
Прошу вашего взгляда на картинку и подсказки, правильно ли я нашел пины IM0, IM1 и IM2:
Дорожка справа от IM2 это RESET
IM2 подключен к земле
IM0, IM1 - к VDD
Я так понимаю, нужно разрезать дорожку IM2 и кинуть ее на VDD для активации 4-line SPI (3-line SPI не получится так как IM0, IM1 замкнуты).
Так сказать сложно, я покупал tft панели, там просто были выведены пины на разъем, а коммутацию делал на плате. Разбирая при изучении готовые шилды сталкивался с размещением перемычек прямо на шлейфе. То что вы нашли, не факт то что это пины конфигурации.
здоорово, что победили дисп. :))) хороший, большой :)
Прошу вашего взгляда на картинку и подсказки, правильно ли я нашел пины 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 каков результат был?
Да, читал что 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. Ну да ладно, буду в скетче это корректировать.
Попробую еще татч подключить. Что-то я забыл про него упомянуть.
Только что попробовал подключить к ДУЕ - библиотека 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 компилируется с ошибками, но загружается. При этом дисплей молчит.
Ладно, с ДУЕ потом буду разбираться.
можете изменить (подредактировать) свой пост , думаю просто описка
По пунктам 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.
при подаче на IM0 лог0 -16бит режим , при лог1 - 8бит.
подходят иниты от подобных контроллеров ili9486 ili9488 , .... (совпадение setxy )
если 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
немного оффтоп. ( как подключить на телефон другой дисплей )
Если у вас сломался на телефоне дисплей , и такого нет рядом в продаже , то вкорячте что есть под рукой, который и неподходит даже . :)
просто близкому человеку нужны были контакты, на симку скопировать :) // софтины не хотелось искать и с ними разбираться.
И главное - надежно примотать скотчем :)
родной дисп 2.4" ili9341 , в библиотеке UTFT пошарил по папкам драйверов UTFT\tft_drivers , у большинства схожие setxy.h , значит и инит подойдёт 99% . попался под руку 2.8" ili9338 от Alcatel . Подключить все, кроме RD (его на + , чтоб дисп всегда был на приёме) и прочей лабуды типа TE , FMARK , ... которая и не используется при обычном подключении к ардуино . Все оба питания от пина питания на котором +3.3в , а не 1.8в.
Если ставите дисп с совершенно другим контроллером как здесь, то надо оставлять старый дисплей подключенным, чтобы телефон опознал его родной дисп на месте (ID контроллера, и иногда производитель ставит резистор или делитель на шлейфе чтоб типа только его подходили дисплеи). Таким образом второй дисп просто висит параллельно в режиме приёма.
Кто в теме.. с умершего планшета есть дисплей с тачем.
Что необходимо для подключения к ардуино.. хочу выводить примитивные тексты, диаграммы и т.п.
был prestigio 5080B
Уважаемые, кто осилил такой дисплей от NOKIA X6 (китай) YDE FPC 32 T902 A1 ???
Распиновка совпадает с 3.0" 400x240 8K1465 TFT8K1465FPC-A1-E TRULY-C ( nokia china 5800 , X6 )
Инициализации ни для SPFD 5420A ни для ILI 9326 не заводят дисплей,.
Драйвер по нулевому адресу не определяется, читаются нули.
В телефоне дисплей исправно работает ...
Вопрос - каким драйвером управляется данный дисплей ???
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:
то к каким пинам все это дело подключать? Запутался я совсем.
p.masyukov, прочитали бы пред. страницы , уже отвечал на этот вопрос. ещё добалю что в планшетниках и навигаторах используют мощные процы , поэтому дешёвые дисплеи в которых нет контроллеров с видеопамятью (своего рода видеокарт). Поэтому их можно подключить только через спецплаты выполняющих эту роль. Узнав цену вы раздумаете что либо с ним делать. Иначе бы вы запустили бы уже его на малом разрешении.
chugun, это вопрос к вам. У вас же есть этот дисплей, вам и исследовать его. Разве что где-то вы ошиблись в подключении, раз читалка ничего не выдала. прочитайте тему, в последних сообщениях последние варианты читалок.
forfrends, как бы время чтоб это исследовать. Диспы по идее должны быть у меня с выведенными SDA .
Гляньте даташит ili9341, это же распространенный arduino SPI, тем более либа с аппаратным дружит. Можно еще глянуть pdf к UTFT , там должно быть описано подключение SPI "4пин" и "5пин" . В примере UTFT\examples\Arduino (AVR)\UTFT_Demo_320x240_Serial написано
значит используется варианты 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
Уважаемые slider и forfriends , тему то я читал ... С подключением всё ровно, т.к. экран снят с рабочего телефона и управляющие сигналы не плохо наблюдаются и различаются при помощи осцилографа, а именно RST, CS, RS, WR, RD, D0...D15 . Был бы лог.сканер - можно было бы снять инициализацию при включении телефона, но ...
Читалка у меня своя, т.к. пишу в CodeVisionAVR и судя по предыдущим постам - это не единственный экран у которого чтение ID возвращает нули.
Повторюсь - варианты инициализации пробовал для SPFD 5420A и ILI 9326 (т.к. именно эти драйверы поддерживают экраны с разрешением 240x400) - безрезультатно.
Вопрос оставляю открытым - может у кого имеется инфа по данному дисплею YDE FPC 32 T902 A1 ( фото выше ) ...
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, а использовать только часть видеопамяти. Советую попробовать иниты от других контроллеров.
forfrends , он походу в теме , оставьте, раз в другой оболочке сам написал. и осцилом полез.
У меня тож разные диспы 200х400 выдавали нули, закинул . пока через пару месяцев не вернулся к ним снова. оказалось управляющие пины по другому распологались там, не так как думал. подключил по другому и считалось всё. Бывали ещё пины (im) переворачивающие байты (8и8 //8080 8086), как ниббы в байте . бывало что пришлось задержки в читалку вставлять, для полных 16ти байтовых ответов немного иначе оказалось читалка должна читать (это можно проследить по изменениям в читалках до последних версий). Бывало что на шлейфе кондёр стоял на управляющем пине, поэтому через 10ком заваливался импульс. Считаю простой вариант это использовать для чтения ардуину Мегу, или немного портировать на MegaCore atmega128, там тоже есть цельные 8ми битные порты, так чтобы оставался аппаратный RX TX чтоб посмотреть большой ответ в мониторе порта.
// драйверов поддерживающих 240x400 много и они разные.
Эх, похоже придется затею с SPI отложить. Сильно узкие дорожки. Нет у меня навыка паять такею мелочь, велика вероятность что только испорчу дисплей. НО! По ходу все возможно было сделать. slider, вы сами и написали ответ: UTFT myGLCD(DMTFT28105,MOSI,SCK,10,NOTINUSE,9) для связи используется только MOSI (SDA). Да и на других сайтах нашел ту же инфу. Может чуток поднаберусь опыта - попробую. А пока разберусь еще с 3-мя дисплеями. Лежат и ждут своего часа :)
// Мне вот только странно что на ДУЕ ничего не заработало. Попробую стандартную (не правленную) библиотеку, может скомпилируется, а то не хочет.
Уже не плохо, хоть какие-то наводящие ответы, спасибо товарищи !!!
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.
chugun, если взять ту же библиотеку UTFT, то в ней есть папка tft_drivers, в ней по папкам рассортированы контроллеры и инициализации к ним. Можно их испольховать. Лучше оставьте первую читалку, она только по 0-му адресу читает, возьмите читалку №3, ссылку давал выше. Она 100% вам выдаст какую-то полехную информацию.
///
Вопрос: как подключать татч?? На самом татче 4 пина, а все примеры идут с 5-и пиновыми настройками. Как быть? Наверное на шилдах стоят какие-то контроллеры татча? Если подключать на прямую, то нужна ли какая-то обвязка (резисторы конденсаторы)? Принцип работы татча знаю: два края "+" и "-", с других - чтение. Но хотелось бы что бы это заработало на библиотеке UTouch. Или может есть другие варианты?
....Ещё вопрос по самой первой читалке из начала темы - разве чтение выполняется дерганьем 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 - что не будет засорять полученную таблицу всяким шлаком ) И. да, рекомендую притянуть все используемые пины Меги мегаомными резисторами к минусу, чтобы избежать другого вида мусора - остаточного. Там уж все равно на задевание пальца будет действовать, если появился мусор на задевание - ага , дисп не в режиме ответа!
Вопрос: как подключать татч?? На самом татче 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 "
В настоящее время продаются шилды и с емкостными тачами (Они дороже) , у продавцов есть примеры под них. Значит можно приладить емкостные тачи какие есть (хотя в местных магазах они бывают дешевле чем резистивные), главное найти под них уже написанную либу у продавцов шилдов или в гугле.
Вот такой имеется пирожок, писал выше. Живой но не как немогу завести. Шына 8Bit, без вариантов. http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-...
судя по количеству резисторов и дорожек от пинов дисплея (плохо видно) то это 16бит. Если хотите, можете прислать, гляну. мож как здесь начудили http://arduino.ru/forum/apparatnye-voprosy/35-tft-lcd-krasnyi-megovskii-mega-2560-r3-resheno-kak-reshit-drugie#comment-204256 иль ещё что нового
судя по количеству резисторов и дорожек от пинов дисплея (плохо видно) то это 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, менял на то что было в инете на али подходящее по распиновке.
Вопрос по библиотеке 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 };Вопрос по библиотеке UTFT: В библиотеке что я скачал присутствует расширенный набор шрифта - добавлен русский текст и некоторые иконки (смайлики, батирея, уровень сигнала...) вопрос как вызывать эти иконки?
Что скачали и где? Для хороших иконок надо чтоб SPI микруха с ними на шилде стояла, с нее беруться большие разноцветные иконки. Соответственно чтоб ардуина была подключена к дисплею и этой микрухе. Она параллелится MicroSD , но имеет отдельно свой CS (F_CS) . Загуглите .
Для простых спец символов заброшенных библиотекой в код программы, в ардуинку, используется косая черта и код символа . Для некоторых функций если следует затем обычный символ то надо кавычки закрыть и снова открыть
Пока все собрано, Проверьте для большого и семисегментного шрифта наличие пробела для затирки букв/цифр чтоб нулем или черным квадратом не затирать. А то в либе они случайной бякой затирались. Если отсутствует то надо его дополнить в символы больших шрифтов.
.
Либа "От СанСаныча": https://yadi.sk/d/UQHngzW-svzSH
Уже в примерах нашел русский. Да, там набор кавычек: (""\x99""o""\xa3"".c""\x9d\xa1\x97""o""\xa0\xab"") - читается как "(доп. символы)
Я тут накидал небольшую програмку для перевода русского текста в набор символов для 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Вопрос по библиотеке UTFT: В библиотеке что я скачал присутствует расширенный набор шрифта - добавлен русский текст и некоторые иконки (смайлики, батирея, уровень сигнала...) вопрос как вызывать эти иконки?
В теме http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru... в основном описывается как руссифицировать библиотеку Adafruit-GFX, но есть пример как использовать специальные символы из шрифта.
Спасибо, уже разобрался. Даже небольшую програмку написал в помощь - смотрите пост выше.
Программа определения типа монитора выдала следующее:
gtrance , врятли дисплей у вас подлючен как надо.
вы не внимательно читали тему. изучите повнимательней. иначе бы у вас уже все получилось.
// вы не использовали "вставка-редактирование кода" , и это не последняя читалка. в общем дисплей неправильно подключен.
все заработало со старой IDE и старой библиотекой.
*
Добрый день, есть такой экран https://www.ghielectronics.com/downloads/man/LQ043T1DG01.pdf
LQ043T1DG01, вставлен в некую плату, видимо отладочный кит, но неважно, так вот возможно ли этот экран подключить а ардуине, например к меге, подскажите куда копать, с чего начать.
Добрый день, есть такой экран https://www.ghielectronics.com/downloads/man/LQ043T1DG01.pdf
LQ043T1DG01, вставлен в некую плату, видимо отладочный кит, но неважно, так вот возможно ли этот экран подключить а ардуине, например к меге, подскажите куда копать, с чего начать.
когда ж удосужитесь читать хотябы первую страницу темы, ответы на эти диспы уже были , причем на каждой странице
comment-91565
comment-192094
comment-94551
ничего вы с ними не сделаете , раз спрашиваете.
еще тема с RGB интерфейс дисплей pomogite-pozhaluista-podklyuchit-kitaiskii-tft-displei-k-arduino
Спасибо болшьшое, вы так любезны, ответив на мой вопрос о великий гуру, а если честно то неx@й вы@бывaться, ответил спокойно и все, а то читай учись, просто помоги человеку и все.. попробуй найди в куче постов что это именно твой дисплей...
jafff, может так быть что кроме вас с таким дисплеем никто не сталкивался. Лучше чем вы никто с ним не разберется. В этой теме форума приведены 100% работающие МЕТОДЫ. Ну и приведены примеры где эти методы сработали и получилось подключить и запустить дисплей. Ваш вопрос задает каждый новый в теме, и ответ всегда один - прочтите тему. Это поможет понять принцыпы "победы" над дисплеями. Не воспринимайте все в штыки, мы поможем чем сможем, просто и сами приложите усилия, ведь кроме вас никто не сможет использовать ваш дисплей.
Да, теперь я понимаю почему многие на форуме отправляют в тему "ищу исполнителя".
Ну что же вы так сразу... Slider дал хорошие ссылки - там все коротко и четко написано по таким дисплеям как у вас.
Вам действительно следовало почитать тему - вы не сможете использовать этот дисплей на ардуине, так как у него нет видеопамяти. Подробнее смотрите в постах выше, Slider писал о подобных дисплеях.
Это я не вам, это я для человека писал. А на 2560 можно попробовать, поставить штуки 4 внешней SRAM сформировать Vsink, Hsink итд. Если найдет или разберется как прицепить 565ру5 можно и динамическую память. Только работать будет не очень. Как иксперимент можно взять ППЗУ, прошить в них какой то спрайт на весь экран и тупо вывести, это для отладки протокола обмена. Ну а потом можно и дальше двигаться.