FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Суббота, 03.12.2016, 18:39
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 4 из 8«12345678»
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Кириллица на hd44780 . Возможно ли? (Кириллица на hd44780 . Возможно ли?)
Кириллица на hd44780 . Возможно ли?
Noname Дата: Четверг, 04.02.2016, 22:27 | Сообщение # 46
Лейтенант
Группа: Проверенные
Сообщений: 82
Награды: 0
Репутация: 1
Статус: Offline
Цитата faramir777 ()
ейчас пытаюсь заставить работать библиотеку WolfCrystal на arduino IDE 1.6.3, а уже на основе ее и делать блок, тогда не будет ограничений по количеству кириллических символов а так же будет работать с переменными.
не бросайте, нужное дело делаете..
 
faramir777 Дата: Пятница, 05.02.2016, 23:31 | Сообщение # 47
Сержант
Группа: Проверенные
Сообщений: 46
Награды: 5
Репутация: 5
Статус: Offline
Доработал пользовательский блок LCD 1602 на чипе HD44780 с возможностью вывода русских символов для дисплеев,  не поддерживающих кириллицу.
Нет ограничений по количеству кириллических символов
Умеет работать с переменными
Использует стандартную библиотеку LiquidCrystal
ВАЖНО:
1. Нет буквы Ё
2. Блок понимает только ПРОПИСНЫЕ буквы
3. В связи с ограниченным количеством свободных ячеек для
записи своих символов, пришлось много символов заменять похожими из  катаканы (а они местами корявы smile ), поэтому для лучшей читаемости советую не использовать буквы : Ц, Ч, Ш, Щ, Э.
Прикрепления: Rus_LCD_v2-CODE.ubi(44Kb)


E8400 4gb win10 64bit, pipo w4 win8 32bit

Сообщение отредактировал faramir777 - Пятница, 05.02.2016, 23:49
 
Noname Дата: Воскресенье, 07.02.2016, 00:20 | Сообщение # 48
Лейтенант
Группа: Проверенные
Сообщений: 82
Награды: 0
Репутация: 1
Статус: Offline
Цитата faramir777 ()
Доработал пользовательский блок LCD 1602
Спасибо огромное! все работает, все ок.
 
faramir777 Дата: Воскресенье, 07.02.2016, 00:40 | Сообщение # 49
Сержант
Группа: Проверенные
Сообщений: 46
Награды: 5
Репутация: 5
Статус: Offline
Оказалось что блок не совсем корректно работает, возникают проблемы при использовании нескольких блоков на одной строке, так как я использовал пробелы вместо очистки экрана.
Я не силен в Си, подскажите как очищать экран только при изменении переменной, в данном случае char charVar[50]


E8400 4gb win10 64bit, pipo w4 win8 32bit

Сообщение отредактировал faramir777 - Воскресенье, 07.02.2016, 00:44
 
Noname Дата: Пятница, 12.02.2016, 19:32 | Сообщение # 50
Лейтенант
Группа: Проверенные
Сообщений: 82
Награды: 0
Репутация: 1
Статус: Offline
Цитата faramir777 ()
возникают проблемы при использовании нескольких блоков на одной строке
у меня в программах всегда только два блока дисплея- для первой и второй строк.а вывод на них через переменные с разрешением записи в определенный момент, поменял на ваши блоки и перевел значения переменных на русский,  проблем не возникало.

возможно это не правильно, но когда мне нужно очистить строку(сделать её пустой), я ввожу в нее переменную полную пробелов.

Добавлено (07.02.2016, 23:42)
---------------------------------------------
добавьте пожалуйста, к блоку вход разрешения записи, как на стандартном блоке дисплея в программе.

Добавлено (12.02.2016, 19:32)
---------------------------------------------

Цитата faramir777 ()
Оказалось что блок не совсем корректно работает, возникают проблемы при использовании нескольких блоков на одной строке,
кстати да, не корректно. Печаль..
не могу мигать строкой... а очень хотелось...
 
Олег Дата: Пятница, 12.02.2016, 20:38 | Сообщение # 51
Гуру
Группа: Проверенные
Сообщений: 721
Награды: 20
Репутация: 15
Статус: Online
Если интересно, то могу предложить вариант как использовать кириллические (или свои) символы, но только 8 штук и чуть-чуть придется ручками подрабатывать.
 
Noname Дата: Пятница, 12.02.2016, 23:44 | Сообщение # 52
Лейтенант
Группа: Проверенные
Сообщений: 82
Награды: 0
Репутация: 1
Статус: Offline
Конечно же интересно))
Только распишите подробнее.
 
Олег Дата: Суббота, 13.02.2016, 01:18 | Сообщение # 53
Гуру
Группа: Проверенные
Сообщений: 721
Награды: 20
Репутация: 15
Статус: Online
Примерно так, в блоке пользователя создаются свои элементы:

Мне для одного проекта этих букв хватило. Самое неудобство при вставке символов в слова. Те буквы которые одинаково выглядят в кириллице и латинице печатаются на латинице (например вместо русской В печатаем латинскую В).
А вот вместо символа которого нет в латинице, но он создан в нашем блоке пишем его код. Например слово ПРОГРАММА будет выглядеть так: \1PO\3PAMMA. Вместо П мы подставили \1, а вместо Г подставили \3.
Сам блок дисплея мы используем оригинальный и в той плате где дисплей появляется первый раз, мы подставляем перед ним этот пользовательский блок. Он подставляется только один раз во всем проекте. Если вы физически используете два дисплея в проекте, то в Setting section надо все прописывать и для второго дисплея.
Выглядит в проекте это примерно так:

Буквы лучше использовать прописные, в строчных не все буквы красиво смотрятся, например м и m.
Ну и надо подумать какие слова лучше использовать, например вместо ВКЛ и ВЫКЛ можно использовать СТАРТ и СТОП, так как у меня П используется и в других словах, а Ы нужно было только в ВЫКЛ.
Ну а если нужен какой-то свой символ, то с помощью этого блока его очень удобно сделать, например на этом изображении под кодом \2 у меня был значок дельта.
Прикрепления: 1741165.jpg(80Kb) · 1135290.png(4Kb) · _-CODE-.ubi(9Kb)


Сообщение отредактировал Олег - Суббота, 13.02.2016, 11:11
 
Noname Дата: Суббота, 13.02.2016, 21:44 | Сообщение # 54
Лейтенант
Группа: Проверенные
Сообщений: 82
Награды: 0
Репутация: 1
Статус: Offline
Цитата Noname ()
не могу мигать строкой
могу уже.

Добавлено (13.02.2016, 21:44)
---------------------------------------------

Цитата Олег ()
Примерно так, в блоке пользователя
 Спасибо огромное, отличный блок!))
возможно я что -то не допонял, но в описании блока у Вас написано,что можно использовать восемь символов, присвоив им код от 0 до 7. А в самом блоке Вы использовали семь, от 1 до 7. Так вот я никак не могу добавить восьмой - вылетает ошибка компиляции. Добавьте восьмой, если возможно.
 
Олег Дата: Воскресенье, 14.02.2016, 00:33 | Сообщение # 55
Гуру
Группа: Проверенные
Сообщений: 721
Награды: 20
Репутация: 15
Статус: Online
К сожалению восьмой не будет работать, так-как нулевой символ используется в Си как маркер конца строки и таким образом его не ввести. Когда это пишется в скетче, то этот символ выводится командой lcd.write(0), но как это реализовать в FLProg не представляю. Может кто, тот кто знает Си подскажет.
 А ошибки компиляции быть не должно, что-то вы не правильно вставляли.
 
Noname Дата: Воскресенье, 14.02.2016, 00:41 | Сообщение # 56
Лейтенант
Группа: Проверенные
Сообщений: 82
Награды: 0
Репутация: 1
Статус: Offline
Цитата Олег ()
К сожалению восьмой не будет работать
ну нет, так нет, семь тоже хорошо))

Добавлено (14.02.2016, 00:41)
---------------------------------------------

Цитата Олег ()
А ошибки компиляции быть не должно, что-то вы не правильно вставляли.
ошибка именно если пытаться добавить в блок  восьмой символ.
с семью работают все буквы и эмблемки , а вот восьмой ни как. но проблему эту Вы объяснили.
 
Олег Дата: Воскресенье, 14.02.2016, 01:13 | Сообщение # 57
Гуру
Группа: Проверенные
Сообщений: 721
Награды: 20
Репутация: 15
Статус: Online
Проблема была в том, что символ не отображается, но блок с восемью символами при этом компилируется нормально.
 Кстати, я нашел способ вставить восьмой символ вручную. 
Для этого в проекте пишем \0. После этого в скомпилированном проекте находим строчку _lcd1.print((String("\0"))); и меняем ее на  _lcd1.write((byte)0);
Если проект большой, или этот символ использовался много раз, то проще это сделать при помощи Notepad++. Копируем код из IDE туда и выполняем "Заменить на" и код заменится во всем проекте, потом копируем обратно и загружаем в контроллер.
 
Олег Дата: Воскресенье, 14.02.2016, 01:30 | Сообщение # 58
Гуру
Группа: Проверенные
Сообщений: 721
Награды: 20
Репутация: 15
Статус: Online
Изменил описание в блоке и добавил восьмой символ в виде буквы Ю.
Прикрепления: 1078064.ubi(11Kb)


Сообщение отредактировал Олег - Воскресенье, 14.02.2016, 17:53
 
Noname Дата: Воскресенье, 14.02.2016, 14:38 | Сообщение # 59
Лейтенант
Группа: Проверенные
Сообщений: 82
Награды: 0
Репутация: 1
Статус: Offline
Цитата Олег ()
...и добавил восьмой символ
Не могу вывести восьмой символ, как понял он уже "зашит" в блок в виде "Ю". стирает всю строку и выводит 0.
В принципе, обхожусь семью символами, но если будете делать блок еще, есть просьба "зашить" букву "И" , т.к. она чаще употребима.
 
Олег Дата: Воскресенье, 14.02.2016, 14:59 | Сообщение # 60
Гуру
Группа: Проверенные
Сообщений: 721
Награды: 20
Репутация: 15
Статус: Online
Опишите пожалуйста что вы делаете, что-то у вас не так, все должно выводится. Вы можете сами менять символы как вам заблагорассудится, в зависимости от проекта, в этом и смысл блока.
 Может я что-то не так написал в описании, когда придем к консенсусу, тогда поправлю и описание, если дело в этом.
 
Форум » Основной » Спросить у знатоков » Кириллица на hd44780 . Возможно ли? (Кириллица на hd44780 . Возможно ли?)
Страница 4 из 8«12345678»
Поиск:

FLProg © 2016
Яндекс.Метрика