Сахар фсё?
Вчера купил сахарный песок по 70 руб. Для этого пришлось обойти 3 магазина. Не было даже в Магните. Сезонно или очередной «кризис» как с солью и спичками бывало?
Жизнь замечательных грибов
Сюда тащатся заметки из жизни
Вчера купил сахарный песок по 70 руб. Для этого пришлось обойти 3 магазина. Не было даже в Магните. Сезонно или очередной «кризис» как с солью и спичками бывало?
1. Ни один работодатель никогда не интересовался моими отметками в университете
2. Я забыл все, что учил в университете
3. «Хорошие отметки» вредили моему здоровью
4. У меня не было времени на других людей
5. Всему, что мне приносит деньги сегодня, я научился за пределами университета
Вот те советы, которые я дам своему сыну, когда он пойдет в школу:
2. Твои счета оплачивают твои навыки, а не оценки на куске бумаги
3. Красный диплом не даст тебе ощутимых преимуществ, чего не скажешь о влиятельных знакомых
4. Занимайся тем, что имеет для тебя смысл, а не тем, что от тебя ожидают другие
Стырено с интернетов (с)
Итак, пришел наконец дисплейчик на микросхеме HX8357B. Подключил — работает. Демки показывает которые идут к библиотеке utft (взять можно здесь). Да вот беда — русский то шрифт (кириллицу) ожидаемо не поддерживает. Будем исправлять. Первым делом роем интернет. Находим два решения: тут и тут. Первое не интересно тем, что для вывода на экран в кириллице требуется писать код вида:
1 |
myGLCD.print("\x97""o""\x99""a", x, y); |
, второй тем.. что тупо не компилируется со множеством ошибок..побороть которые в силу не очень уверенного знания c++ не представилось возможным.
Итог: на основе этих двух решений разработано собственное:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
#include <UTFT.h> #include <memorysaver.h> UTFT tft(CTE32HR,38,39,40,41); extern uint8_t SmallRusFont[]; extern uint8_t BigRusFont[]; const uint8_t utf8_rus_charmap[] PROGMEM = {'A',128,'B',129,130,'E',131,132,133,134,135,'K',136,'M','H','O',137,'P','C','T',138,139,'X',140,141, 142,143,144,145,146,147,148,149,'a',150,151,152,153,'e',154,155,156,157,158,159,160,161,162,'o',163,'p','c',164,'y',165,'x',166,167,168,169,170, 171,172,173,174,175}; void printRus(UTFT rus,char *st, int x, int y, int deg){ int stl, i; stl = strlen(st); if (rus.orient==PORTRAIT){ if (x==RIGHT) x=(rus.disp_x_size+1)-(stl*rus.cfont.x_size); if (x==CENTER) x=((rus.disp_x_size+1)-(stl*rus.cfont.x_size))/2; } else { if (x==RIGHT) x=(rus.disp_y_size+1)-(stl*rus.cfont.x_size); if (x==CENTER) x=((rus.disp_y_size+1)-(stl*rus.cfont.x_size))/2; } uint8_t utf_high_byte = 0; uint8_t ch, ch_pos = 0; for (i = 0; i < stl; i++) { ch = st[i]; if ( ch >= 128) { if ( utf_high_byte == 0 && (ch ==0xD0 || ch == 0xD1)) { utf_high_byte = ch; continue; } else { if ( utf_high_byte == 0xD0) { if (ch == 0x81) { //Ё ch = 6; } else { if(ch <= 0x95) { ch -= 0x90; } else if( ch < 0xB6){ ch -= (0x90 - 1); } else { ch -= (0x90 - 2); }} ch = pgm_read_byte(utf8_rus_charmap + ch); } else if (utf_high_byte == 0xD1) { if (ch == 0x91) {//ё ch = 39; } else { ch -= 0x80; ch += 50; } ch = pgm_read_byte(utf8_rus_charmap + ch); } utf_high_byte = 0; } } else { utf_high_byte = 0; } if (deg==0) {rus.printChar(ch, x + (ch_pos * (rus.cfont.x_size)), y);} else { rus.rotateChar(ch, x, y, ch_pos, deg); } ++ch_pos; } }; void setup(){ tft.InitLCD(LANDSCAPE); tft.clrScr(); tft.setColor(VGA_BLACK); tft.fillRect(0,0, tft.getDisplayXSize()-1, tft.getDisplayYSize()-1); tft.setFont(BigRusFont); tft.setColor(VGA_WHITE); tft.setBackColor(VGA_TRANSPARENT); printRus(tft,"АБВГДЕЁЖЗИЙКЛМН", 0, 0,0); printRus(tft,"ОПРСТУФХШЩЬЫЪЭ", 0, 20,0); printRus(tft,"ЮЯабвгдеёжзийкл", 0, 40,0); printRus(tft,"мнопрстуфхцчшщь", 0, 60,0); printRus(tft,"ыъэюя", 0, 80,0); tft.setFont(SmallRusFont); printRus(tft,"АБВГДЕЁЖЗИЙКЛМН", 0, 100,0); printRus(tft,"ОПРСТУФХШЩЬЫЪЭ", 0, 120,0); printRus(tft,"ЮЯабвгдеёжзийкл", 0, 140,0); printRus(tft,"мнопрстуфхцчшщь", 0, 160,0); printRus(tft,"ыъэюя", 0, 180,0); } void loop() { } |
Заливаем скетч в Arduino..и вуаля, получаем картинку вида:
Чем отличается переменное напряжение от постоянного. Графики обоих напряжений. Что такое частота. Какая частота в розетке?