Зарегистрирован: Вс мар 27, 2022 09:38:17 Сообщений: 160
Рейтинг сообщения:0
Добрый вечер всем! Хочу задать вопрос к людям кто знает тематику. Вобщем делаю устройство... Индикатор у меня: "LCD 1602 HD44780" ( без Кириллицы естественно ). Всё вроде бы и ничего но вот меню на латинице это просто ну " не очень" Пытаюсь как-то русифицировать с помощью CGRAM то что дадено Китайцами 8 байт. Но не получается ни как. Вроде бы и пару функций набросал и там вроде как всё просто ( записал/прочитал ). Казалось бы. И тут у меня получается что не могу я вывести в одну строку 2 разных слова. Они как бы выводятся но после вывода первого слова следующее наплывает на первое. Как бы данные копируются из второго в первое. И не могу понять что с этим делать... Не выходит... Там скрины кусков кода и скрины модели в протеусе. На отладочной плате тоже самое... МК у меня Atmega8 среда Atmel Studio 6.2 . Вобщем программист из меня не очень но хотелось бы сделать нормально. Кому не трудно посмотрите дайте идею что мне делать. Кто в этом понимает. Спасибо если отзовётесь!
Вы все символы что-ли загоняете в 8 байт пользовательских мест? Английских там тоже нет, только иероглифы? В любом случае, массивы избыточны. Для слов ВЛЕВО и ВРАЩЕНИЕ достаточно создать массив из ВЛЕОРАНИЩ, первые восемь загнать в пользовательскую область, последний в зависимости от слова менять то на Щ, то на И. А уже адресацией на этот алфавит составлять слова. Если есть английский, то брать из него, генерировать только недостающие Л, И, Щ
Всё вроде бы и ничего но вот меню на латинице это просто ну " не очень"
Значит латиница таки есть, но не устраивает его OBEC PACTET и подобное. А если бы даже латиницы и не было, то "Для слов ВЛЕВО и ВРАЩЕНИЕ достаточно создать массив из" ВЛЕРАНИЩ, а букву О взять из цифры 0, пусть она будет перечёркнута.
Зарегистрирован: Вс мар 27, 2022 09:38:17 Сообщений: 160
Рейтинг сообщения:0
Латиница там присутствует. Но 2 слова это пример. На самом деле слов много. Вопрос был как сделать чтоб слова не сливались. А то что можно латиницу подставить ну этошь и так понятно. Но только все слова пишет вместе.
Добавлено after 5 minutes 51 second: Вы мне покажите пример, функцию, которая сможет вывести символы из ОЗУ и закончить строку. При начале новой строки не копировались символы LCDdata( первое слово ) и в LCDdata( второе слово ).
Добавлено after 3 minutes 15 seconds: Получается что выводится слово потом вызывается эта же фу-я но уже с другим массивом и начинает выводится второе слово. При этом данные копируются в LCDdata уже выведенного слова.
заглавные русские буквы А, В, Е, К, М, Н, О, Р, С, Т, Х, У - уже присутствуют в латинском алфавите, их программировать не нужно. также есть несколько строчных (маленьких) букв, совпадающих по начертанию с латинскими буквами - а, е, о, р, с, х, у,которые тоже программировать не нужно. одновременно больше 8 букв запрограммировать НЕЛЬЗЯ. если по какому-то адресу запрограммировать другой символ, то экран покажет этот символ, а не тот, что был запрограммирован ранее. для слов ВРАЩЕНИЕ ВЛЕВО достаточно запрограммировать 3 символа Щ, И, Л. все остальные символы будут из латинского алфавита.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Зарегистрирован: Вс мар 27, 2022 09:38:17 Сообщений: 160
Рейтинг сообщения:0
Спасибо за материал конечно но ничего я там не нашёл для себя. Там OLED у меня LCD1602. Они по разному управляются как минимум. Функции я не понимаю, что там за функции, и как они работают. Они там просто вызываются и что-то делают. Вобщем я не понял ничего. Но всё равно СПАСИБО!
Зарегистрирован: Вс мар 27, 2022 09:38:17 Сообщений: 160
Рейтинг сообщения:0
Спасибо! Так блин этих куплено 5 шт на алике. И обидно что не понимают по Русски! Ну я правда сначала думал что типа ерунда можно писать по Русски через CGRAM люди же как-то делают. Но вот шото не получается... Криво как-то. Чего то не хватает. Какой-то мелочи но не могу догадатся какой...
а конкретно LCD1602 там действительно нет)) давно с ним не работал... но сути это не меняет. все экраны работают одинаково)) а символы выводятся на экран с помощью знакогенератора...
именно так я и делал)) я выводил на экран LCD1602 не только свои символы... но и даже рисовал различные картинки)) только это было давно... я уже не помню всех команд... надо перечитывать даташит )) где-то на одном из форумов... валяется исходник... теперь уже не вспомню где))
Зарегистрирован: Вс мар 27, 2022 09:38:17 Сообщений: 160
Рейтинг сообщения:0
Да я всё понимаю. Я всё делаю по правилам. Нарисовать символ любой и вывести вообще без проблем. но только один раз. Второй раз перезаписывает второе слово в первое. Вот в чём проблема а не в том как его нарисовать и загнать в CGRAM. В итоге выходит чёрти что. А так одно слово пишет нормально. Всё выводится записывается переписывается... Яж не могу пользоватся только одним Русским словом а потом латиница правильно? Иначе зачем тогда эта трата нервов? Хочется чтоб читалось удобно. Ни ктож не пользуется в смартфоне Английскими настройками, всеш выбирают Русскую раскладку и вообще всё меню и т.д.
Нужно уметь программировать, мыслить логически, знать и понимать работу контроллера дисплея, а не "всё делаю по правилам". Тогда всё наладится. Всё же элементарно: 1. есть массив знаков, в этом массиве можно нарисовать ещё (добавить к нему, а не заменить весь его своими единственными восемью) 8 своих, то есть дополняете недостающие кириллические варианты к существующим английским. И работаете с этим массивом, одновременно и с латиницей и с кириллицей и с иероглифами - со всем массивом знакогенератора. 2. есть область памяти дисплея, к которой надо относиться как к набору ссылок на массив знакогенератора. Именно ссылок, а не самих знаков (а жаль). То есть, если в массиве внезапно содержимое изменяется, это одновременно меняется на дисплее, потому что он по ссылке берет данные каждое свое обновление. Поэтому невозможно в дисплей размером 2х16 загнать одновременно 32 своих знака. Только динамически, а в 1 единицу времени - нет.
в слове ВЛЕВО выделенные красным - латиница. сосчитайте, сколько букв надо дорисовать своих? то же для ВРАЩЕНИЕ
ну и заодно ВПРАВО
сосчитали? если получилось, что опять надо больше 4, то перечитывайте весь текст всей этой ветки заново, пока не станет 4.
Добавлено after 12 minutes 17 seconds: Могу предложить иначе. Выведите на экран текст, набранный латиницей: BPAhEHiE BLEBO Использовать только таблицу знакогенератора. Ничего не отрисовывать, только команды помещения адреса ячейки знакогенератора на дисплей. Затем нарисуйте в ячейках символы Щ И Л Замените адреса ячеек на h i L на адреса нарисованных соответственно.
Зарегистрирован: Вс мар 27, 2022 09:38:17 Сообщений: 160
Рейтинг сообщения:0
Я хотел чуть не так. Хотел записать в ОЗУ например первое слово " защита " а второе " батареи " и всё кирллическими символами переписав CGRAM 2 раза. Но не получается. Он тогда переписывает и превое слово. Он наверно связывает ячейки... Ну если я заполню 8 символов недостающими латиницы то возможно и выйдут слова. Нада попробовать... Спасибо за идею. А то я размечтался думаю сейчас создам массив там будет Кириллица и большая и маленькая памяти ещё 2,5 кБ хватит! Думал буду рисовать как карандашом по листку бумаги. Ну спасибо за мысль... Завтра надо попробовать шото повыводить по составлять. Чуть не удобно нежели просто выводить. Писанины всё таки больше...
первое слово " защита " а второе " батареи " и всё кирллическими символами
Далась вам эта кириллица... Я ж не просто так написал про OBEC PACTET - в этих двух словах нет ни одной кириллической буквы, лишь только латиница. Половина букв русского и латинского алфавитов совпадают по начертанию, отчего ж этим и не воспользоваться?!
Хочется, чтоб читалось удобно. Никто же не пользуется в смартфоне английскими настройками
А зря. Хоть американе и нехорошие человеки , но всё же английский язык (он не виноват!) - международный, им пользуются и китайцы, и японцы (несмотря на свои иероглифы), так что надо осваивать хотя бы его техническое подмножество, ориентированное на конкретную предметную область. Тогда мы не будем так одиноки со своим хотя и "великим и могучим", конечно, но увы - постепенно становящийся в технике рудиментом. Я так думаю. И одной проблемой будет меньше - берём любой LCD. Постепенно привыкнем и перестаём замечать. Вот в авиации - заносчивые амеры не перешли на метрическую систему, и мы, чертыхаясь, называем высоту в футах, а скорость - в милях/час. А куда деваться - не они летают на Яках и Туполях, а мы - на Боингах и Арбузах.
Ужас. Пока сам шишки не набьёшь - не дойдёт.( Знакогенератор ОДИН на ВЕСЬ экран! Ага? В примере (это вся программа без инициализации) я просто пишу текст кириллицей и ни о чём не думаю, за меня думает библиотека. Я лишь должен следить о превышении одновременно отображаемых на экране 8-ми русских символов. Потому в комментариях они и указаны.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения