Страница 1 из 1
Char
Добавлено: 03 дек 2015, 21:56
dim21841
Всем привет!
Сталкивался-ли кто-то с необходимостью вывода на экран маленькой пиктограммы?
В принципе по средством Arduino IDE у меня получилось и создать и вывести на экран, только вот в чём проблема саму программу я создал в FLPorg и сидеть потом в ручную добавлять куски кода перед заливкой не очень хочется. Поэтому вопрос как прямо в программе создать и хранить элемент CHAR?
0874387.jpg
Добавлено (03.12.2015, 21:56)
---------------------------------------------
не ужели не реально??
Char
Добавлено: 03 дек 2015, 22:27
Олег
Я думаю мало кто озадачивался этой проблемой, ждите, может кто и откликнется.
Char
Добавлено: 03 дек 2015, 22:53
dim21841
ээх... буду ждать, в ручную вставить в IDE после FLProg что-то не получается (
Char
Добавлено: 04 дек 2015, 16:56
DWD
Я только начал изучать программу, но в первом же примере с применением дисплея столкнулся с такой же необходимостью выводить не только буквы с цифрами, но и различные символы.
По этому поодерживаю просьбу к автору програмы придумать что-то.
Char
Добавлено: 05 дек 2015, 08:40
Слимпер
Некоторые дополнительные символы можно и сейчас выводить.
Правда только те которые зашиты в знакогенераторе дисплея.
Почитайте здесь:
LCD HD44780 Вывод символов
Char
Добавлено: 05 дек 2015, 10:09
dim21841
Слимпер, спасибо. Учту в будущих проектах. Жаль что нельзя самому нарисовать что-то... но будем ждать.
Кстати а как насчёт вывода информации на OLED SSD1306? Думаю создать STRING переменные а за тем добавить пару строк код по сборке этих переменных на экране. Как думаете получится?
Char
Добавлено: 05 дек 2015, 11:26
Слимпер
dim21841 писал(а):Кстати а как насчёт вывода информации на OLED SSD1306? Думаю создать STRING переменные а за тем добавить пару строк код по сборке этих переменных на экране. Как думаете получится?
К сожалению вряд ли получится, это как я понял это графический дисплей, а Flprog пока поддерживает только символьные, притом только на чипе HD44780 (и его клонах).
Char
Добавлено: 05 дек 2015, 13:09
DWD
Слимпер писал(а):Почитайте здесь: LCD HD44780 Вывод символов
Спасибо, но я мало что понял.

Суть понятна, а вот реализация нет.
Объясните, пожалуйста, как в примере по Вашей ссылке сформирована надпись "Влажность", имеющая код "В\273а\266\275ос\277\304" ?
Char
Добавлено: 05 дек 2015, 14:14
Слимпер
DWD писал(а):Объясните, пожалуйста, как в примере по Вашей ссылке сформирована надпись "Влажность", имеющая код "В\273а\266\275ос\277\304" ?
Принцип такой, надо найти в документации на ваш экран, таблицу символов.
Вот таблица экрана который я использовал.

Все символы которые там есть можно вывести, используя их уникальный (для этого дисплея) код.
Код формируется так:
В верхней строке таблице в двоичной форме указаны коды столбцов. Здесь вместо 0 и 1 использованы буквы L и H, то есть запись LLLL = 0000, а HHHH=1111.
Аналогичным образом в левом столбце задаются коды строки.
Для получения кода символа из таблице необходимо записать вместе код столбца и строки.
Для примера бреем букву "л:
Код столбца "HLHH"=1011
Код строки " HLHH"=1011
Записываем в одну строку получаем:
Код буквы "л" в двоичной форме =
10111011
Конвертируем в восьмеричное представление:
Либо в уме (для тех кто хорошо знает эту тему), либо с помощью программ (их множество), самое простое Windows калькулятор, правда его надо перевести в режим Программист (в семерки вкладка вид).
8145440.png
В открывшемся калькуляторе переходим в двоичную систему счисления (пнопка Bin)
Вводим код символа
0378004.png
Переводим число в восьмеричную систему счисления, (нажав Oct)
0756251.png
Вот и получили код буквы "л" из слова влажность, а записывается он вместе с символом "\", "\273"
Остальные русские буквы аналогично, а те что по написанию совпадают с латинскими берутся из латинского алфавита, в слове влажность это буквы (В , а , о , с)
Когда я делал свой проект для простоты использования составил себе табличку русского алфавита:
Коды символов (5376087.docx)
Char
Добавлено: 05 дек 2015, 17:20
DWD
Понял, на чём прокололся - я решил, что пример в шестнадцатиричном коде.
Хорошо знаком с двоичным и шестнадцатиричным, а восмеричным никогда не пользовался.
В примере по ссылке это бы нужно указать...
Для полного анализа, приведите, пожалуйста, пример кода того же слова, но в шестнадцатиричной системе счисления.
И ещё. Возможны ли такие функции дисплея, как курсор, мигание и т.д.?
Char
Добавлено: 05 дек 2015, 18:34
dim21841
Слимпер писал(а):К сожалению вряд ли получится, это как я понял это графический дисплей, а Flprog пока поддерживает только символьные, притом только на чипе HD44780 (и его клонах).
так я собираюсь конечные данные отправлять не на lcd 1602 а помещать их в переменные типа string, далее перед заливкой скетча в arduino ручками добавлю пару строк которые будут эти переменные размещать на экране.
дело в том что собрал и обкатал устройство на Mega 2560 + LCD 1602 а в конечном виде хочу запустить на PRO Mini + OLED SSD1306. как с этим экраном работать ручками знаю, уже получалось а вот попробовать совместить FLProg c "ручками" еще не пробовал )
Char
Добавлено: 05 дек 2015, 18:54
Слимпер
dim21841 писал(а):так я собираюсь конечные данные отправлять не на lcd 1602 а помещать их в переменные типа string, далее перед заливкой скетча в arduino ручками добавлю пару строк которые будут эти переменные размещать на экране.дело в том что собрал и обкатал устройство на Mega 2560 + LCD 1602 а в конечном виде хочу запустить на PRO Mini + OLED SSD1306. как с этим экраном работать ручками знаю, уже получалось а вот попробовать совместить FLProg c "ручками" еще не пробовал )
Пробуйте, может и правда выйдет, с латинскими буквами и цифрами думаю все может получится, а вот с русскими и символами это мало вероятно. Так как в Arduino IDE Sting представлен символами ASCII (
таблице кодировки символов ASCII).
Хотя может я чего не знаю и в Flprog, другая таблица символов.
Char
Добавлено: 05 дек 2015, 19:35
Слимпер
DWD писал(а):Для полного анализа, приведите, пожалуйста, пример кода того же слова, но в шестнадцатиричной системе счисления.
Проверь не смогу свободного дисплея с русским сейчас нет, но должно быть что то вроде:
"Влажность",
"\x
42BB61B6BD6F63BFC4"
Приходится все буквы задавать кодами как уже писалось в статье
Единственный нюанс в том, что после того, как компилятор в строке видит последовательность \x, он считывает за ним все символы, которые могут являться разрядами шестнадцатиричной системы даже если их больше двух.
DWD писал(а):И ещё. Возможны ли такие функции дисплея, как курсор, мигание и т.д.?
Ну напрямую функции задействовать нельзя, но сделать костыли можно
8444214.png
Вот так делаю мигание курсора в нужной позиции (сверху пробел - закрашенный символ, снизу двоеточие - закрашенный символ )
8536343.png
А так мигание двухзначного числа.
Вот бегущею строку делать не пробовал, но вроде на форуме где писали, что можно сделать использую массивы.
Char
Добавлено: 05 дек 2015, 21:48
DWD
Спасибо, всё понятно.
А вот танцы с бубном для спецфункций не радуют...
Char
Добавлено: 05 дек 2015, 22:13
dim21841
Слимпер писал(а):с латинскими буквами и цифрами думаю все может получится
так а мне и хватит. мне что латиница что кириллица, проблем нет. тем более что выводиться будут в основном цифры, спецсимволы и пиктограммы.