Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Динамическая индикация дисплея 1602

Пн окт 31, 2022 20:11:18

Всем привет! Возникла сложность в отображении всех 33 букв русского алфавита в дисплее 1602 где русской раскладки нет. Как-то мне посоветовали использовать динамическую индикацию для решения этой проблемы, но я не могу понять как ее реализовать. Кто с этим сталкивался поделитесь пожалуйста опытом или может кто знает где это можно изучить?
Я пробовал реализовать динамически, но у меня не успевают символы отобразиться, как уде записываются другие. Я не знаю вообще возможно ли это сделать на 1602?

Re: Динамическая индикация дисплея 1602

Пн окт 31, 2022 20:15:00

А что мешает поставить паузу (уйти делать другую часть программы) и не записывать, пока не отобрязяться?

Re: Динамическая индикация дисплея 1602

Пн окт 31, 2022 20:17:34

Так это будет заметно же глазу

Re: Динамическая индикация дисплея 1602

Пн окт 31, 2022 20:20:05

Ой-вэй, зачем "динамическая индикация"?
Вам посоветовали использовать 8 пользовательских ячеек в начале таблицы символов, вот эти:
Изображение
в них вначале нужно загрузить изображение тех русских символов, которые будете использовать в ТЕКУЩЕМ выводимом слове или строке, а потом уже при выводе текстовой строки указать в нужных местах номера ячеек, в которые загружены нужные символы

Re: Динамическая индикация дисплея 1602

Пн окт 31, 2022 20:23:29

чтобы отобразить на таком дисплее какой-то символ нужно послать команды инициализации дисплея, однократно, при включении, а затем послать команды, загружающие символ в пользовательскую ячейку, а затем команды, адресующие знакоместо экрана на эту ячейку. После этого можно вообще выключить микроконтроллер, но символ останется.
Никаких проблем глазам.

Добавлено after 2 minutes 34 seconds:
MLX90640, может, ТС использует 9 символов разных... тогда всё несколько веселее. И я бы решал пересмотром интерфейса, чтобы было не более 8 + совпадающие по начертанию из таблицы

Re: Динамическая индикация дисплея 1602

Пн окт 31, 2022 20:24:44

А, прочитал, да, он хочет все 33 символа одновременно :) Ну это как бы...

Re: Динамическая индикация дисплея 1602

Пн окт 31, 2022 20:25:29

не поместится, нужно 1604 или 2002 )

Re: Динамическая индикация дисплея 1602

Пн окт 31, 2022 20:33:01

А, прочитал, да, он хочет все 33 символа одновременно :) Ну это как бы...

ну не то что бы одновременно, а хотя бы например два или три слова, полюбому появится такие слова где мне этих 8 символов и символов латиницы похожих будет не достаточно)

Добавлено after 1 minute 5 seconds:
чтобы отобразить на таком дисплее какой-то символ нужно послать команды инициализации дисплея, однократно, при включении, а затем послать команды, загружающие символ в пользовательскую ячейку, а затем команды, адресующие знакоместо экрана на эту ячейку. После этого можно вообще выключить микроконтроллер, но символ останется.
Никаких проблем глазам.

Добавлено after 2 minutes 34 seconds:
MLX90640, может, ТС использует 9 символов разных... тогда всё несколько веселее. И я бы решал пересмотром интерфейса, чтобы было не более 8 + совпадающие по начертанию из таблицы

Допустим три слова, как вы это сделаете? Никак

Re: Динамическая индикация дисплея 1602

Пн окт 31, 2022 20:37:30

Допустим три слова, как вы это сделаете? Никак


Внимание! Напр.
15 вольт!

импвльт - понадобилось 7 символов

Re: Динамическая индикация дисплея 1602

Пн окт 31, 2022 20:41:48

ну выкручивать как то можно, если действовать таким, способом, но я хотел на все случаи жизни, но кажется это невозможно с таким дисплеем. Ладно, всем спасибо)

Re: Динамическая индикация дисплея 1602

Пн окт 31, 2022 20:42:36

Вы купили вагон дисплеев? на всю жизнь?

Re: Динамическая индикация дисплея 1602

Пн окт 31, 2022 20:57:57

неее, я имею в виду на все случаи жизни в плане написания и сочетании слов

Re: Динамическая индикация дисплея 1602

Пн окт 31, 2022 21:05:52

Для повторяющихся букв используйте соответствующие буквы из другой кодовой таблицы.
напр. eng "Т" -> ру "Т"

Для несуществующих букв английского алфавита создаете:
В 8 CGRAM дисплея можете создать 8 букв с соответствующей кодировкой в ​​8 первых ячейках.

или больше, чем 8:
Если нужны все буквы, напр. в первых 7 создайте буквы, которые используются чаще всего.
В последная 8: создаете символ, печатаете его, создаете другой символ, печатаете его и т. д.

Загрузка кода для новой буквы занимает несколько строк. например на С использую:
Код:
void lcd_create_char(int8 location, int8 charmap[]) {
  location &= 0x7; // we only have 8 locations 0-7
  lcd_send_byte(0, 0x40 | (location << 3));
 
  for (int8 i = 0; i < 8; i++)
    lcd_send_byte(1, charmap[i]);
}

Для код букв: Ексел или онлайн калкулатор или ... карандаш и бумага :) :
LCD Custom Character Generator/

ниже: печат буквы "Ю"
Вложения
Untitled-3.jpg
(68.94 KiB) Скачиваний: 35
Untitled-2.jpg
(162.94 KiB) Скачиваний: 30
Untitled-1.jpg
(110.32 KiB) Скачиваний: 32
Последний раз редактировалось veso74 Пн окт 31, 2022 21:23:59, всего редактировалось 1 раз.

Re: Динамическая индикация дисплея 1602

Пн окт 31, 2022 21:22:56

Всем привет! Возникла сложность в отображении всех 33 букв русского алфавита в дисплее 1602 где русской раскладки нет. Как-то мне посоветовали использовать динамическую индикацию для решения этой проблемы, но я не могу понять как ее реализовать. Кто с этим сталкивался поделитесь пожалуйста опытом или может кто знает где это можно изучить?
Я пробовал реализовать динамически, но у меня не успевают символы отобразиться, как уде записываются другие. Я не знаю вообще возможно ли это сделать на 1602?

Здесь посмотрите.

Re: Динамическая индикация дисплея 1602

Пн окт 31, 2022 21:28:29

при "динамическом" отображении буквы, которые обновляются знакогенератором, будут более тусклые, чем те, что штатно прошиты в знакогенераторе - это очевидно же.

но в чем проблема, я не понимаю: надо динамически раз 50 в секунду выводить текст, поочередно заменяя русские "оригинальные" буквы то на пробел, то на символ из встроенного генератора. разумеется, и знакогенератор надо обновлять по мере необходимости перед выводом символов. муторно это все, но вполне реализуемо.

я делал вот такое:
Ответить