asis-kbr.ru

автоматические системы и системы безопасности
Текущее время: 23 авг 2017, 19:45

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: 04 янв 2013, 21:11 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 19 янв 2012, 12:52
Сообщения: 547
Откуда: KBR
Данная библиотека позволяет выводить кириллические сообщения, на не поддерживающие кириллицу, совместимые с WH1602 дисплеи.
Принцип по которому работает данная библиотека - управление набором из 8 динамически подгружаемых пользовательских символа внутри дисплея, в который автоматически подгружается необходимый набор кириллических символов.

Реализован режим мерцания участка дисплея, управляемый 2-мя переменными:
    1-я - указывает на первый символ мерцающего участка ,
    2-я - указывает длину мерцающего участка (если 2-я переменная = 0, мерцание отсутствует).

Есть несколько условий использования данного способа печати кириллицей:
    Печать кириллицей, возможна только через буфер в SRAM (размером 32 байта). Т.е. сначала заносим сообщение в буфер, потом вызываем функцию, отправляющую содержимое буфера на дисплей.
    Печать, способом прямой отправки символов на дисплей, будет отображать только символы зашитые в индикатор.
    Печать в русской раскладке, возможна только заглавными символами.
    Одновременно на дисплее может присутствовать не более 8-ми, разных, чисто кириллических символа, из ряда - БГДЖЗИЙЛПУФЦЧШЩЪЫЭЮЯ.
    При попытке вывода на дисплей бОльшего количества разных, кириллических символов, остальные будут заменятся символом "*".

Например, если вывести на индикатор надпись:
Код:
"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ", то на индикаторе мы увидим:
"АБВГДЕЖЗИЙКЛМНО*РСТ**Х******b***", то есть, для отображения данной надписи были загружены следующие кириллические символы:
"-Б-ГД-ЖЗИЙ-Л--------------------", видим что это как раз 8 загруженных кириллических символа.
"---------------П---УФ-ЦЧШЩЪЫ-ЭЮЯ" - На данные кириллические символы - места не хватило, и они заменяются звездочками.
"A-B--E----K-MHO-PCT--X------b---" - Эти символы русского алфавита, берутся из обычной латиницы.
При выводе последующих надписей, неиспользуемые кириллические символы в пользовательском буфере дисплея, будут автоматически перезагружены новыми необходимыми символами.
Как показала практика, ситуаций, когда не хватает места для всех кириллических символов в предложении, практически не возникает.....

Подключение 4-х линий данных возможно к любому порту, на 4 следующие друг за другом линии, например: 0,1,2,3 или 1,2,3,4 или 2,3,4,5 или 3,4,5,6 или 4,5,6,7. Остальные 4-е линии данного порта, могут использоваться для других целей.
Подключение 2-х управляющих линий возможно - либо к тому же порту что и данные, либо к другому.

Вложение:
Комментарий к файлу: пример включения дисплея
sh1.jpg
sh1.jpg [ 73.62 КБ | Просмотров: 21222 ]

Вложение:
LCD_TO_RUS.jpg
LCD_TO_RUS.jpg [ 87.65 КБ | Просмотров: 20202 ]

Вложение:
mega8_LCD_4bit_WINAVR.7z [34.32 КБ]
Скачиваний: 3255

Вложение:
mega8_LCD_4bit_PROTEUS.7z [6.87 КБ]
Скачиваний: 1756


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 фев 2013, 21:12 
Не в сети
Аватара пользователя

Зарегистрирован: 18 фев 2013, 20:13
Сообщения: 25
Кстати это помойму прелести Протеуса, что он не выводит русский текст. Я как то собирал в железе тестовый вариант ( когда изучал LCD ) так вот Протеус мне выводил кракозябру, а в железе всё было хорошо. LCD был на HD44780 кристале.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 фев 2013, 22:02 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 19 янв 2012, 12:52
Сообщения: 547
Откуда: KBR
Да не, тут другое.
Индикаторы бывают без русского шрифта (только латиница и еще какие то каракули), а бывают с русским шрифтом (в реале наверное у тебя такой был).
Например если покупать в россии, то обычно это русскоговорящие. А если заказывать в китае, то там надо смотреть на маркировку.
А что касается протеуса, то чтобы он казал по русски, туда какой то плагин надо подключить, я правда не пробовал.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 май 2017, 16:41 
Не в сети

Зарегистрирован: 30 май 2017, 16:30
Сообщения: 2
При компиляции с Вашей библиотекой выдаёт ошибку:
variable'LCDKirilicRecodingMap' must be const in order to be put into read-only section by means of'_attribute_((progmem))'

Компилируются в atmel studio 6

В чем может быть проблема?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 31 май 2017, 01:16 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 19 янв 2012, 12:52
Сообщения: 547
Откуда: KBR
Сейчас в отъезде, как приеду, гляну в 6-ке... Я писал в четвертой, а между 4-й и 6-й есть какая то разница... в общем как гляну, отпишусь...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 31 май 2017, 13:12 
Не в сети

Зарегистрирован: 30 май 2017, 16:30
Сообщения: 2
Хорошо большое спасибо

в строках где обьявлеятся progmem добавил слово const и ошибка перешла на другую строку

unsigne char LCDUserCharMap [8]='@@@@@@@@';

initializer -string for array of chars is too long [-fpermissive]


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB