Русификация библиотеки TVOut.h, нужна помошь
- Войдите на сайт для отправки комментариев
Всем привет! Для своего проекта решил русифицировать библиотеку TVOut.h. Изучив вопрос как это сделать, посмотрел файлы со шрифтами, там содержаться символьные знаки от 32 до 127 по кодовой таблице ASCII. Дописал файл до конца т.е. все 255 символов, точнее половина из них не нужных оставил пустыми пока, т.к. они мне вывод их на экран не нужен, а русский алфавит полностью. Вот к примеру шрифт 6x8:
#include "font6x8.h" PROGMEM const unsigned char font6x8[] = { 6,8,32, //32 Space 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, //33 Exclamation ! 0b01000000, 0b01000000, 0b01000000, 0b01000000, 0b01000000, 0b00000000, 0b01000000, 0b00000000, //34 Quotes " 0b01010000, 0b01010000, 0b01010000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, //35 Number # 0b00000000, 0b00000000, 0b01010000, 0b11111000, 0b01010000, 0b11111000, 0b01010000, 0b00000000, //36 Dollars $ 0b00100000, 0b01110000, 0b10100000, 0b01110000, 0b00101000, 0b01110000, 0b00100000, 0b00000000, //37 Percent % 0b00000000, 0b11001000, 0b11010000, 0b00100000, 0b01011000, 0b10011000, 0b00000000, 0b00000000, //38 Ampersand & 0b00100000, 0b01010000, 0b10000000, 0b01000000, 0b10101000, 0b10010000, 0b01101000, 0b00000000, //39 Single Quote ' 0b01000000, 0b01000000, 0b01000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, //40 Left Parenthesis ( 0b00010000, 0b00100000, 0b01000000, 0b01000000, 0b01000000, 0b00100000, 0b00010000, 0b00000000, //41 Right Parenthesis ) 0b01000000, 0b00100000, 0b00010000, 0b00010000, 0b00010000, 0b00100000, 0b01000000, 0b00000000, //42 Star * 0b00010000, 0b00111000, 0b00010000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, //43 Plus + 0b00000000, 0b00100000, 0b00100000, 0b11111000, 0b00100000, 0b00100000, 0b00000000, 0b00000000, //44 Comma , 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00010000, 0b00010000, 0b00000000, //45 Minus - 0b00000000, 0b00000000, 0b00000000, 0b11111000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, //46 Period . 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00010000, 0b00000000, 0b00000000, // 47 Backslash / 0b00000000, 0b00001000, 0b00010000, 0b00100000, 0b01000000, 0b10000000, 0b00000000, 0b00000000, // 48 Zero 0b01110000, 0b10001000, 0b10101000, 0b10101000, 0b10001000, 0b01110000, 0b00000000, 0b00000000, //49 One 0b00100000, 0b01100000, 0b00100000, 0b00100000, 0b00100000, 0b01110000, 0b00000000, 0b00000000, //50 two 0b01110000, 0b10001000, 0b00010000, 0b00100000, 0b01000000, 0b11111000, 0b00000000, 0b00000000, //51 Three 0b11111000, 0b00010000, 0b00100000, 0b00010000, 0b10001000, 0b01110000, 0b00000000, 0b00000000, //52 Four 0b10010000, 0b10010000, 0b10010000, 0b11111000, 0b00010000, 0b00010000, 0b00000000, 0b00000000, //53 Five 0b11111000, 0b10000000, 0b11110000, 0b00001000, 0b10001000, 0b01110000, 0b00000000, 0b00000000, //54 Six 0b01110000, 0b10000000, 0b11110000, 0b10001000, 0b10001000, 0b01110000, 0b00000000, 0b00000000, //55 Seven 0b11111000, 0b00001000, 0b00010000, 0b00100000, 0b01000000, 0b10000000, 0b00000000, 0b00000000, //56 Eight 0b01110000, 0b10001000, 0b01110000, 0b10001000, 0b10001000, 0b01110000, 0b00000000, 0b00000000, //57 Nine 0b01110000, 0b10001000, 0b10001000, 0b01111000, 0b00001000, 0b01110000, 0b00000000, 0b00000000, //58 : 0b00000000, 0b00000000, 0b00100000, 0b00000000, 0b00000000, 0b00100000, 0b00000000, 0b00000000, //59 ; 0b00000000, 0b00000000, 0b00100000, 0b00000000, 0b00100000, 0b00100000, 0b01000000, 0b00000000, //60 < 0b00000000, 0b00011000, 0b01100000, 0b10000000, 0b01100000, 0b00011000, 0b00000000, 0b00000000, //61 = 0b00000000, 0b00000000, 0b01111000, 0b00000000, 0b01111000, 0b00000000, 0b00000000, 0b00000000, //62 > 0b00000000, 0b11000000, 0b00110000, 0b00001000, 0b00110000, 0b11000000, 0b00000000, 0b00000000, //63 ? 0b01100000, 0b10010000, 0b00100000, 0b00100000, 0b00000000, 0b00100000, 0b00000000, 0b00000000, 0x30, 0x48, 0x48, 0x30, 0x00, 0x00, 0x00, 0x00, // Code for char @ //65 A 0b00100000, 0b01010000, 0b10001000, 0b11111000, 0b10001000, 0b10001000, 0b00000000, 0b00000000, //B 0b11110000, 0b10001000, 0b11110000, 0b10001000, 0b10001000, 0b11110000, 0b00000000, 0b00000000, //C 0b01110000, 0b10001000, 0b10000000, 0b10000000, 0b10001000, 0b01110000, 0b00000000, 0b00000000, //D 0b11110000, 0b10001000, 0b10001000, 0b10001000, 0b10001000, 0b11110000, 0b00000000, 0b00000000, //E 0b11111000, 0b10000000, 0b11111000, 0b10000000, 0b10000000, 0b11111000, 0b00000000, 0b00000000, //F 0b11111000, 0b10000000, 0b11110000, 0b10000000, 0b10000000, 0b10000000, 0b00000000, 0b00000000, //G 0b01110000, 0b10001000, 0b10000000, 0b10011000, 0b10001000, 0b01110000, 0b00000000, 0b00000000, //H 0b10001000, 0b10001000, 0b11111000, 0b10001000, 0b10001000, 0b10001000, 0b00000000, 0b00000000, //I 0b01110000, 0b00100000, 0b00100000, 0b00100000, 0b00100000, 0b01110000, 0b00000000, 0b00000000, //J 0b00111000, 0b00010000, 0b00010000, 0b00010000, 0b10010000, 0b01100000, 0b00000000, 0b00000000, //K 0b10001000, 0b10010000, 0b11100000, 0b10100000, 0b10010000, 0b10001000, 0b00000000, 0b00000000, //L 0b10000000, 0b10000000, 0b10000000, 0b10000000, 0b10000000, 0b11111000, 0b00000000, 0b00000000, //M 0b10001000, 0b11011000, 0b10101000, 0b10101000, 0b10001000, 0b10001000, 0b00000000, 0b00000000, //N 0b10001000, 0b10001000, 0b11001000, 0b10101000, 0b10011000, 0b10001000, 0b00000000, 0b00000000, //O 0b01110000, 0b10001000, 0b10001000, 0b10001000, 0b10001000, 0b01110000, 0b00000000, 0b00000000, //P 0b11110000, 0b10001000, 0b11110000, 0b10000000, 0b10000000, 0b10000000, 0b00000000, 0b00000000, //Q 0b01110000, 0b10001000, 0b10001000, 0b10101000, 0b10010000, 0b01101000, 0b00000000, 0b00000000, //R 0b11110000, 0b10001000, 0b11110000, 0b10100000, 0b10010000, 0b10001000, 0b00000000, 0b00000000, //S 0b01111000, 0b10000000, 0b01110000, 0b00001000, 0b00001000, 0b11110000, 0b00000000, 0b00000000, //T 0b11111000, 0b00100000, 0b00100000, 0b00100000, 0b00100000, 0b00100000, 0b00000000, 0b00000000, //U 0b10001000, 0b10001000, 0b10001000, 0b10001000, 0b10001000, 0b01110000, 0b00000000, 0b00000000, //V 0b10001000, 0b10001000, 0b10001000, 0b10001000, 0b01010000, 0b00100000, 0b00000000, 0b00000000, //W 0b10001000, 0b10001000, 0b10101000, 0b10101000, 0b10101000, 0b01010000, 0b00000000, 0b00000000, //X 0b10001000, 0b01010000, 0b00100000, 0b01010000, 0b10001000, 0b10001000, 0b00000000, 0b00000000, //Y 0b10001000, 0b10001000, 0b01010000, 0b00100000, 0b00100000, 0b00100000, 0b00000000, 0b00000000, //Z 0b11111000, 0b00001000, 0b00010000, 0b00100000, 0b01000000, 0b11111000, 0b00000000, 0b00000000, //91 [ 0b11100000, 0b10000000, 0b10000000, 0b10000000, 0b10000000, 0b11100000, 0b00000000, 0b00000000, //92 (backslash) 0b00000000, 0b10000000, 0b01000000, 0b00100000, 0b00010000, 0b00001000, 0b00000000, 0b00000000, //93 ] 0b00111000, 0b00001000, 0b00001000, 0b00001000, 0b00001000, 0b00111000, 0b00000000, 0b00000000, //94 ^ 0b00100000, 0b01010000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, //95 _ 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b11111000, 0b00000000, //96 ` 0b10000000, 0b01000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, //97 a 0b00000000, 0b01100000, 0b00010000, 0b01110000, 0b10010000, 0b01100000, 0b00000000, 0b00000000, //98 b 0b10000000, 0b10000000, 0b11100000, 0b10010000, 0b10010000, 0b11100000, 0b00000000, 0b00000000, //99 c 0b00000000, 0b00000000, 0b01110000, 0b10000000, 0b10000000, 0b01110000, 0b00000000, 0b00000000, // 100 d 0b00010000, 0b00010000, 0b01110000, 0b10010000, 0b10010000, 0b01110000, 0b00000000, 0b00000000, //101 e 0b00000000, 0b01100000, 0b10010000, 0b11110000, 0b10000000, 0b01110000, 0b00000000, 0b00000000, //102 f 0b00110000, 0b01000000, 0b11100000, 0b01000000, 0b01000000, 0b01000000, 0b00000000, 0b00000000, //103 g 0b00000000, 0b01100000, 0b10010000, 0b01110000, 0b00010000, 0b00010000, 0b01100000, 0b00000000, //104 h 0b10000000, 0b10000000, 0b11100000, 0b10010000, 0b10010000, 0b10010000, 0b00000000, 0b00000000, //105 i 0b00100000, 0b00000000, 0b00100000, 0b00100000, 0b00100000, 0b01110000, 0b00000000, 0b00000000, //106 j 0b00010000, 0b00000000, 0b00110000, 0b00010000, 0b00010000, 0b00010000, 0b01100000, 0b00000000, //107 k 0b10000000, 0b10010000, 0b10100000, 0b11000000, 0b10100000, 0b10010000, 0b00000000, 0b00000000, //108 l 0b01100000, 0b00100000, 0b00100000, 0b00100000, 0b00100000, 0b01110000, 0b00000000, 0b00000000, //109 m 0b00000000, 0b00000000, 0b01010000, 0b10101000, 0b10101000, 0b10101000, 0b00000000, 0b00000000, //110 n 0b00000000, 0b00000000, 0b11110000, 0b10001000, 0b10001000, 0b10001000, 0b00000000, 0b00000000, //111 o 0b00000000, 0b00000000, 0b01100000, 0b10010000, 0b10010000, 0b01100000, 0b00000000, 0b00000000, //112 p 0b00000000, 0b00000000, 0b01100000, 0b10010000, 0b11110000, 0b10000000, 0b10000000, 0b00000000, //113 q 0b00000000, 0b00000000, 0b01100000, 0b10010000, 0b11110000, 0b00010000, 0b00010000, 0b00000000, //114 r 0b00000000, 0b00000000, 0b10110000, 0b01001000, 0b01000000, 0b01000000, 0b00000000, 0b00000000, //115 s 0b00000000, 0b00110000, 0b01000000, 0b00100000, 0b00010000, 0b01100000, 0b00000000, 0b00000000, //116 t 0b01000000, 0b01000000, 0b11100000, 0b01000000, 0b01000000, 0b01000000, 0b00000000, 0b00000000, // 117u 0b00000000, 0b00000000, 0b10010000, 0b10010000, 0b10010000, 0b01100000, 0b00000000, 0b00000000, //118 v 0b00000000, 0b00000000, 0b10001000, 0b10001000, 0b01010000, 0b00100000, 0b00000000, 0b00000000, //119 w 0b00000000, 0b00000000, 0b10001000, 0b10101000, 0b10101000, 0b01010000, 0b00000000, 0b00000000, //120 x 0b00000000, 0b10001000, 0b01010000, 0b00100000, 0b01010000, 0b10001000, 0b00000000, 0b00000000, //121 y 0b00000000, 0b00000000, 0b10010000, 0b10010000, 0b01100000, 0b01000000, 0b10000000, 0b00000000, //122 z 0b00000000, 0b00000000, 0b11110000, 0b00100000, 0b01000000, 0b11110000, 0b00000000, 0b00000000, //123 { 0b00100000, 0b01000000, 0b01000000, 0b10000000, 0b01000000, 0b01000000, 0b00100000, 0b00000000, //124 | 0b00100000, 0b00100000, 0b00100000, 0b00100000, 0b00100000, 0b00100000, 0b00100000, 0b00000000, //125 } 0b00100000, 0b00010000, 0b00010000, 0b00001000, 0b00010000, 0b00010000, 0b00100000, 0b00000000, //126 ~ 0b01000000, 0b10101000, 0b00010000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, //127 DEL 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ђ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ѓ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‚ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ѓ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char „ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char … 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char † 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‡ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char € 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‰ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Љ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‹ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Њ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ќ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ћ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Џ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ђ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ‘ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ’ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char “ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ” 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char • 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char – 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char — 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ™ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char љ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char › 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char њ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ќ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ћ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char џ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ў 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ў 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ј 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¤ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ґ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¦ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char § 0x50, 0xF8, 0x80, 0xF8, 0x80, 0xF8, 0x00, 0x00, // Буква Ё 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char © 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Є 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char « 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¬ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ® 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ї 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ° 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ± 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char І 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char і 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ґ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char µ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ¶ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0x50, 0x70, 0x88, 0xF0, 0x80, 0x70, 0x00, 0x00, // Буква ё 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char № 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char є 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char » 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ј 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Ѕ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ѕ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ї 0x20, 0x50, 0x88, 0xF8, 0x88, 0x88, 0x00, 0x00, // Code for char А 0xF8, 0x80, 0xF0, 0x88, 0x88, 0xF0, 0x00, 0x00, // Code for char Б 0xF8, 0x84, 0xF8, 0x84, 0x84, 0xF8, 0x00, 0x00, // Code for char В 0xFC, 0x84, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, // Code for char Г 0x38, 0x48, 0x48, 0x48, 0x48, 0xFC, 0x84, 0x00, // Code for char Д 0xFC, 0x80, 0xFC, 0x80, 0x80, 0xFC, 0x00, 0x00, // Code for char Е 0xA8, 0xA8, 0x70, 0xA8, 0xA8, 0xA8, 0x00, 0x00, // Code for char Ж 0x78, 0x04, 0x78, 0x04, 0x04, 0x78, 0x00, 0x00, // Code for char З 0x84, 0x8C, 0x94, 0xA4, 0xC4, 0x84, 0x00, 0x00, // Code for char И 0xB4, 0x8C, 0x94, 0xA4, 0xC4, 0x84, 0x00, 0x00, // Code for char Й 0x88, 0x90, 0xE0, 0x90, 0x88, 0x88, 0x00, 0x00, // Code for char К 0x3C, 0x44, 0x44, 0x44, 0x44, 0x84, 0x00, 0x00, // Code for char Л 0x88, 0xD8, 0xA8, 0xA8, 0x88, 0x88, 0x00, 0x00, // Code for char М 0x84, 0x84, 0xFC, 0x84, 0x84, 0x84, 0x00, 0x00, // Code for char Н 0x78, 0x84, 0x84, 0x84, 0x84, 0x78, 0x00, 0x00, // Code for char О 0xFC, 0x84, 0x84, 0x84, 0x84, 0x84, 0x00, 0x00, // Code for char П 0xF8, 0x84, 0x84, 0xF8, 0x80, 0x80, 0x00, 0x00, // Code for char Р 0x78, 0x84, 0x80, 0x80, 0x84, 0x78, 0x00, 0x00, // Code for char С 0xF8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, // Code for char Т 0x88, 0x88, 0x88, 0x78, 0x08, 0xF0, 0x00, 0x00, // Code for char У 0x70, 0xA8, 0xA8, 0x70, 0x20, 0x20, 0x00, 0x00, // Code for char Ф 0x88, 0x50, 0x20, 0x20, 0x50, 0x88, 0x00, 0x00, // Code for char Х 0x88, 0x88, 0x88, 0x88, 0x88, 0xFC, 0x04, 0x00, // Code for char Ц 0x88, 0x88, 0x88, 0x78, 0x08, 0x08, 0x08, 0x00, // Code for char Ч 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xF8, 0x00, 0x00, // Code for char Ш 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xFC, 0x04, 0x00, // Code for char Щ 0xC0, 0x40, 0x78, 0x44, 0x44, 0x78, 0x00, 0x00, // Code for char Ъ 0x84, 0x84, 0xE4, 0x94, 0x94, 0xE4, 0x00, 0x00, // Code for char Ы 0x80, 0x80, 0xF0, 0x88, 0x88, 0xF0, 0x00, 0x00, // Code for char Ь 0x78, 0x84, 0x3C, 0x04, 0x84, 0x78, 0x00, 0x00, // Code for char Э 0x98, 0xA4, 0xE4, 0xA4, 0xA4, 0x98, 0x00, 0x00, // Code for char Ю 0x7C, 0x84, 0x7C, 0x24, 0x44, 0x84, 0x00, 0x00, // Code for char Я 0x00, 0x30, 0x08, 0x38, 0x48, 0x38, 0x00, 0x00, // Code for char а 0x60, 0x80, 0xE0, 0x90, 0x90, 0x60, 0x00, 0x00, // Code for char б 0x00, 0xE0, 0x90, 0xE0, 0x90, 0xE0, 0x00, 0x00, // Code for char в 0x00, 0xF0, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, // Code for char г 0x00, 0x30, 0x50, 0x50, 0x50, 0xF8, 0x88, 0x00, // Code for char д 0x00, 0x60, 0x90, 0xF0, 0x80, 0x70, 0x00, 0x00, // Code for char е 0x00, 0xA8, 0x70, 0x20, 0x70, 0xA8, 0x00, 0x00, // Code for char ж 0x00, 0xE0, 0x10, 0xE0, 0x10, 0xE0, 0x00, 0x00, // Code for char з 0x00, 0x88, 0x98, 0xA8, 0xC8, 0x88, 0x00, 0x00, // Code for char и 0x20, 0x88, 0x98, 0xA8, 0xC8, 0x88, 0x00, 0x00, // Code for char й 0x00, 0x88, 0x90, 0xE0, 0x90, 0x88, 0x00, 0x00, // Code for char к 0x00, 0x38, 0x48, 0x48, 0x48, 0x88, 0x00, 0x00, // Code for char л 0x00, 0x88, 0xD8, 0xA8, 0xA8, 0x88, 0x00, 0x00, // Code for char м 0x00, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x00, 0x00, // Code for char н 0x00, 0x70, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00, // Code for char о 0x00, 0xF8, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, // Code for char п 0x00, 0xF0, 0x88, 0x88, 0xF0, 0x80, 0x00, 0x00, // Code for char р 0x00, 0x70, 0x88, 0x80, 0x88, 0x70, 0x00, 0x00, // Code for char с 0x00, 0xF8, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, // Code for char т 0x00, 0x88, 0x88, 0x78, 0x08, 0xF0, 0x00, 0x00, // Code for char у 0x00, 0x70, 0xA8, 0xA8, 0x70, 0x20, 0x00, 0x00, // Code for char ф 0x00, 0x88, 0x50, 0x20, 0x50, 0x88, 0x00, 0x00, // Code for char х 0x00, 0x88, 0x88, 0x88, 0x88, 0xFC, 0x04, 0x00, // Code for char ц 0x00, 0x88, 0x88, 0x78, 0x08, 0x08, 0x00, 0x00, // Code for char ч 0x00, 0xA8, 0xA8, 0xA8, 0xA8, 0xF8, 0x00, 0x00, // Code for char ш 0x00, 0xA8, 0xA8, 0xA8, 0xA8, 0xFC, 0x04, 0x00, // Code for char щ 0x00, 0xC0, 0x40, 0x78, 0x44, 0x78, 0x00, 0x00, // Code for char ъ 0x00, 0x84, 0x84, 0xE4, 0x94, 0xE4, 0x00, 0x00, // Code for char ы 0x00, 0x80, 0x80, 0xF0, 0x88, 0xF0, 0x00, 0x00, // Code for char ь 0x00, 0x70, 0x88, 0x38, 0x88, 0x70, 0x00, 0x00, // Code for char э 0x00, 0x98, 0xA4, 0xE4, 0xA4, 0x98, 0x00, 0x00, // Code for char ю 0x00, 0x78, 0x88, 0x78, 0x48, 0x88, 0x00, 0x00 // Code for char я };
Дальше вопрос встал как выводить... в библиотеке в файле TVoutPrint.cpp находятся примеры функции которыми возможно воспользоваться для вывода текста, но только работает с английскими символами:
void TVout::select_font(const unsigned char * f) { font = f; } /* * напечатать символ c размером 8x8 в точках x, y * x должен быть кратным 8 */ void TVout::print_char(uint8_t x, uint8_t y, unsigned char c) { c -= pgm_read_byte(font+2); bitmap(x,y,font,(c*pgm_read_byte(font+1))+3,pgm_read_byte(font),pgm_read_byte(font+1)); } void TVout::inc_txtline() { if (cursor_y >= (display.vres - pgm_read_byte(font+1))) shift(pgm_read_byte(font+1),UP); else cursor_y += pgm_read_byte(font+1); } /* реализация по умолчанию: может быть отменена */ void TVout::write(const char *str) { while (*str) write(*str++); } /* реализация по умолчанию: может быть отменено */ void TVout::write(const uint8_t *buffer, uint8_t size) { while (size--) write(*buffer++); } void TVout::write(uint8_t c) { switch(c) { case '\0': //null break; case '\n': //line feed cursor_x = 0; inc_txtline(); break; case 8: //backspace cursor_x -= pgm_read_byte(font); print_char(cursor_x,cursor_y,' '); break; case 13: //carriage return !?!?!?!VT!?!??!?! cursor_x = 0; break; case 14: //form feed new page(clear screen) //clear_screen(); break; default: if (cursor_x >= (display.hres*8 - pgm_read_byte(font))) { cursor_x = 0; inc_txtline(); print_char(cursor_x,cursor_y,c); } else print_char(cursor_x,cursor_y,c); cursor_x += pgm_read_byte(font); } } void TVout::print(const char str[]) { write(str); }
Использовать функцию TV.print("Привет всем!"); - не получилось... Она хорошо работает с английским шрифтом TV.print("Hollo!@);. По факту посимвольно мне удалось вывести вот так в основном коде программы, текст "КОТЁЛ ПОЛЕНО":
TV.clear_screen(); TV.print_char(0, 0, 0xCA); TV.print_char(8, 0, 0xCE); TV.print_char(16, 0, 0xD2); TV.print_char(24, 0, 0xA8); TV.print_char(32, 0, 0xCB); TV.print_char(40, 0, 0x20); TV.print_char(48, 0, 0xCF); TV.print_char(56, 0, 0xC0); TV.print_char(64, 0, 0xCB); TV.print_char(72, 0, 0xC5); TV.print_char(80, 0, 0xCD); TV.print_char(88, 0, 0xCE);
Вопрос к более знающим людям, помочь до конца разобраться, моих знаний уже увы не хватает(
Ваш шрифт в кодровке Windows1251. А строки в ArduinoIDE представляются в кодировке UTF-8.
Перекодируйте. Если не знаете как, то готовых программ перекодирования "over-дофига" в том числе и на этом сайте, ищите.
можно подробнее что именно искать "over-дофига", я не совсем в теме этой еще...
Как что искать? Функцию перекодировки из UTF-8 а Windows1251.
1. То, как Вы выкладываете код, вызывает ужас. Считается хорошим тоном все, что не помещается на один экран - сворачивать.
2. Посмотрите проект http://arduino.ru/forum/proekty/s-stm32f103-na-televizor-polnyi-tv-signal там есть и TVOut, и кириллица сразу в нескольких кодировках. Продублирую оттуда картинку:
1. да уж заметил когда выложил, хотел исправить, а не могу(( так что извените, не нарочно!
2.Сложновато для меня, постараюсь понять и применить у себя. Спасибо, по поиску не нашел этой темы. Вообще цель реализации мне теперь становиться более понятна.
Функцию перекодировки из UTF-8 а Windows1251.
Ни одного нормального ответа на форуме не нашел по поводу перекодировки, можете помочь если под рукой ссылка.
Ни одного нормального ответа на форуме не нашел по поводу перекодировки, можете помочь если под рукой ссылка.
так что вам непонятно то?
Давайте на пальцах обьясню:
Вот вы методом тыка установили, что чтобы нарисовать на экране русскую букву "К", нужно вывести код 0xCA. Собственно, это и есть принцип перекодировки. Теперь вы даже можете эту перекодировку сами написать - всего то нужно просмотреть строчку, выводимую на экран и, если там есть буква "К" - заменить ее на этот код. И так со всеми остальными буквами кириллицы. Составляете табличку с кодами русских букв и производите замену символов на коды перед использованием команды print(). И все
Давайте на пальцах обьясню:
Суть то ясна, человек говорит есть куча примеров здесь, вот и хотелось бы их найти посмотреть. А по факту, только один [b]andriano[/b] привел свой пример, правда для меня пока сложно в него сейчас вникать...
Нашел тут для oled 128*64 экранов пример, как он перекодирует понятно, но эти блин String, это что и как оно работает... У меня задача засунуть это в функцию TV. write() или TV. print()...
не самый лучший вариант.
Обычно делают отдельную функцию, которая строчку "КОТЕЛ" преобразует в массив кодов. А уж этот массив вы потом печатаете через TV. print()
вот, слабал вам макет кода с функцией перекодировки и примером ее использования, выдернуто из одного проекта:
имейте в виду. что это только макет, с вашей либой скорее всего будет выводить крокозябры
вот, слабал вам макет кода с функцией перекодировки и примером ее использования, выдернуто из одного проекта.
Блин видел же этот код на Амперке в форуме, вы же его и советовали)))) отложил по причине общения здесь на форуме, ну и получения возможных разъяснений по теме. Спасибо b707, применять буду. А то я тут уже лепить из этого начал http://arduino.ru/forum/pesochnitsa/ne-podklyuchaetsya-biblioteka. И всем откликнувшимся и не равнодушным спасибо!
Спасибо b707, применять буду.
еще раз обращаю внимание на то, что это только пример. Непосредсвенно этот код вам не подойдет, тут кодировка другая. чем у вас. Строчки 9-10 надо переписывать под кодировку ваших символов
имейте в виду. что это только макет, с вашей либой скорее всего будет выводить крокозябры
Вы говорите о том, что могут перекодированые значения русских символов не попасть в массив символов библиотеки что написал в font6x8?
еще раз обращаю внимание на то, что это только пример. Непосредсвенно этот код вам не подойдет, тут кодировка другая. чем у вас. Строчки 9-10 надо переписывать под кодировку ваших символов
Спасибо, это я понимаю. Я не собирался тупо в код вкрячивать... Посижу, подумаю, по результату достигнутого отпишу!
Строчки 9-10 надо переписывать под кодировку ваших символов
Вообщем вот такой код у меня получился:
С помощью переменных code и code2, что на входе и на выходе функции получалось, "Ё" большое из 129 перекодировалось в 168, а аналогично с малой "ё" из 145 - 184. По остальным буквам тож прошелся.
Осталось как прицепить TV.print(), т.к. с таким методом нет вывода символов...
Вообщем вот такой код у меня получился:
....
поправьте меня, но я не вижу в вашем коде, чтобы вы где-то инкрементировали переменную j
Похоже вы всю перекодировку пишете в один символ dest. а потом туда же пишете '\0'
чтобы вы где-то инкрементировали переменную j
Похоже вы всю перекодировку пишете в один символ dest. а потом туда же пишете '\0'
тогда как и где инкрементировать? dest[++j], 1. увеличение j, потом присваивание нового значения scr[i]
dest[++j]=src[i]+0x70; Тогда инкремент по линии D0 потом D1, даже если нет перекодировки с англ шрифтом инкремент.
Я почему то думал прилетает буква, перекодируем, и выдаем на вывод... видимо ошибался...
Я почему то думал прилетает буква, перекодируем, и выдаем на вывод... видимо ошибался...
вы в код вообще не смотрите? Как же вы его правите тогда?
Если тут перекодировка одной буквы - зачем цикл по всей строке?
[quote=b707]
Перекодировка одной буквы понять в правильно ли я направление двигался... и что на выходе получается))
криминала в этом не вижу, далее двигаемся...
все сначало, i крутится в цикле... j инкрементируется.... создается новый массив с перекодированными кодами символов....
Я не понимаю, чего вы хотите добиться
ты сам то знаешь ответ, на мной поставленный вопрос?))) походу нет!
ты сам то знаешь ответ, на мной поставленный вопрос?))) походу нет!
пожалуй я скажу "нет" и выпилюсь из темы.
Ладно, черт с вами. Я вижу , что вы в коде по нулям совсем. Держите готовое решение - уберите переменную j совсем, везде замените ее на i. И инкремент вам тогда не нужен. Его тоже везде уберите.
На этом все.
Пробуйте.
Самая большая проблема любого форума это отсутствие коммуникации людей. Еще раз повторюсь, я отлаживал свой алгоритм посимвольно, когда добился адекватной работы, написал. ездесь... Далее предложение инкремента j правильно, но подача от вас ну прям ни какая... Я не клянчу готовый код, а прошу разъяснений и советов. Понятно что у меня с кодом по нулям. И алгорим то на самом деле работает...
к вам вопрос как лучше [++j] или [j++], выше представленный результат с [++j]. Здесь получается увеличиваю J, а потом присваиваю новый символ scr[i].
к вам вопрос как лучше [++j] или [j++]
ни первое, ни второе.
Повторяю, в вашем случае переменная j не нужна.
Чем вас вот так не устраивает:
dest[i] = src[i] + 0x30;
И да, забыл спросить - посимвольно это хорошо, а в строчку то научились собирать? на экране печатает?
Не, пока на этом завяз... Хотел с этим решить для начала. Меня так то и посимвольно устроило бы, пару строк вывести. Но тут принципиальный вопрос, научиться работать дальше.
dest[i] = src[i] + 0x30;
Да устраивает, насмотрелся примеров еще других, в основном все заводят лишнюю переменную и ей передают результат. Вечером дальше буду упражняться, попробую так!