Например TDA7294

Форум РадиоКот • Просмотр темы - Помогите с кодом на си
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт июл 25, 2025 23:29:50

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 27 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Помогите с кодом на си
СообщениеДобавлено: Вт мар 28, 2023 20:41:53 
Нашел транзистор. Понюхал.

Зарегистрирован: Вс мар 27, 2022 09:38:17
Сообщений: 160
Рейтинг сообщения: 0
Добрый вечер всем!
Хочу задать вопрос к людям кто знает тематику.
Вобщем делаю устройство...
Индикатор у меня:
"LCD 1602 HD44780" ( без Кириллицы естественно ).
Всё вроде бы и ничего но вот меню на латинице это просто ну " не очень"
Пытаюсь как-то русифицировать с помощью CGRAM то что дадено Китайцами 8 байт.
Но не получается ни как.
Вроде бы и пару функций набросал и там вроде как всё просто ( записал/прочитал ).
Казалось бы. И тут у меня получается что не могу я вывести в одну строку 2 разных слова.
Они как бы выводятся но после вывода первого слова следующее наплывает на первое.
Как бы данные копируются из второго в первое.
И не могу понять что с этим делать...
Не выходит...
Там скрины кусков кода и скрины модели в протеусе.
На отладочной плате тоже самое...
МК у меня Atmega8 среда Atmel Studio 6.2 .
Вобщем программист из меня не очень но хотелось бы сделать нормально.
Кому не трудно посмотрите дайте идею что мне делать.
Кто в этом понимает.
Спасибо если отзовётесь!


Вложения:
Снимок экрана 2023-03-28 203642.jpg [109.67 KiB]
Скачиваний: 62
Снимок экрана 2023-03-28 201626.jpg [103.91 KiB]
Скачиваний: 54
Снимок экрана 2023-03-28 200354.jpg [65.81 KiB]
Скачиваний: 48
Снимок экрана 2023-03-28 201305.jpg [34.49 KiB]
Скачиваний: 44
Снимок экрана 2023-03-28 200853.jpg [92.82 KiB]
Скачиваний: 50
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Вт мар 28, 2023 21:21:29 
Друг Кота

Карма: 68
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Вы все символы что-ли загоняете в 8 байт пользовательских мест? Английских там тоже нет, только иероглифы?
В любом случае, массивы избыточны. Для слов ВЛЕВО и ВРАЩЕНИЕ достаточно создать массив из ВЛЕОРАНИЩ, первые восемь загнать в пользовательскую область, последний в зависимости от слова менять то на Щ, то на И. А уже адресацией на этот алфавит составлять слова.
Если есть английский, то брать из него, генерировать только недостающие Л, И, Щ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Вт мар 28, 2023 22:03:03 
Потрогал лапой паяльник
Аватар пользователя

Карма: 4
Рейтинг сообщений: 79
Зарегистрирован: Сб фев 18, 2023 21:51:01
Сообщений: 306
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Английских там тоже нет, только иероглифы?
Ну он же написал:
Всё вроде бы и ничего но вот меню на латинице это просто ну " не очень"
Значит латиница таки есть, но не устраивает его OBEC PACTET и подобное.
А если бы даже латиницы и не было, то "Для слов ВЛЕВО и ВРАЩЕНИЕ достаточно создать массив из" ВЛЕРАНИЩ, а букву О взять из цифры 0, пусть она будет перечёркнута. :-)

_________________
Всего доброго.
Евгений.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Вт мар 28, 2023 22:13:42 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1213
Рейтинг сообщения: 0
aleksey chilov, вот рабочий пример. Разберётесь?
Спойлер
Код:
#define _LCD_TYPE         1             //I2c LCD
#define TEMP_POS          0,0           //позиции LCD
#define HUMIDITY_POS      0,1
#define LIGHT_POS         0,2
#define PRESSURE_POS      0,3

#define T_CORRECT         -4.5          //коррекция температуры (+/-)
#define PERIOD            10000         //период измерения, ms


#include <Wire.h>
#include "Adafruit_BME280.h"
#include "BH1750.h"
#include "LCD_1602_RUS_ALL.h"


Adafruit_BME280   bme;                  //0x76
BH1750            light;                //0x23
LCD_1602_RUS      lcd(0x27, 20, 4);


void sensor() {
  lcd.setCursor(TEMP_POS);
  lcd.print("  Темп. ");                //  __мп.
  lcd.print(bme.readTemperature() T_CORRECT, 0);
  lcd.print(" *C   ");

  lcd.setCursor(HUMIDITY_POS);
  lcd.print(" Влажн. ");                // _л_жн.
  lcd.print(bme.readHumidity(), 0);
  lcd.print(" %    ");

  lcd.setCursor(LIGHT_POS);
  lcd.print(" Освещ. ");                // __в_щ.
  lcd.print((uint16_t)light.readLightLevel(), DEC);
  lcd.print(" Lux   ");

  lcd.setCursor(PRESSURE_POS);
  lcd.print("  Давл. ");                //  Д___.
  lcd.print(bme.readPressure() / 133.32, 0);
  lcd.print(" мм  ");                   // __
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 00:11:49 
Друг Кота

Карма: 68
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Eats, а вдруг там и цифры иероглифами? ))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 06:28:52 
Нашел транзистор. Понюхал.

Зарегистрирован: Вс мар 27, 2022 09:38:17
Сообщений: 160
Рейтинг сообщения: 0
Латиница там присутствует.
Но 2 слова это пример.
На самом деле слов много.
Вопрос был как сделать чтоб слова
не сливались. А то что можно латиницу подставить
ну этошь и так понятно. Но только все слова пишет
вместе.

Добавлено after 5 minutes 51 second:
Вы мне покажите пример, функцию, которая сможет вывести символы из ОЗУ и закончить строку.
При начале новой строки не копировались символы LCDdata( первое слово ) и в LCDdata( второе слово ).

Добавлено after 3 minutes 15 seconds:
Получается что выводится слово потом вызывается эта же фу-я но уже с другим массивом и начинает выводится
второе слово. При этом данные копируются в LCDdata уже выведенного слова.


Вложения:
Снимок экрана 2023-03-28 201711.jpg [106.49 KiB]
Скачиваний: 43
Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 10:28:17 
Друг Кота

Карма: 2
Рейтинг сообщений: 67
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8163
Откуда: .ru
Рейтинг сообщения: 0
Латиница там присутствует.
Вы мне покажите пример, функцию, которая сможет вывести символы из ОЗУ и закончить строку.

переходим по ссылке...
https://www.radiokot.ru/forum/viewtopic ... 8&t=185219
качаем архив...
Вложение:

смотрим исходник...
Вложение:
пульт.c [104.49 KiB]
Скачиваний: 38

выводим на экран всю таблицу ASCII...
Вложение:
Win-1251-cvavr-java.png [41.04 KiB]
Скачиваний: 32

...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 16:25:47 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2917
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18741
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 2
Медали: 1
Лучший человек Форума 2017 (1)
заглавные русские буквы А, В, Е, К, М, Н, О, Р, С, Т, Х, У - уже присутствуют в латинском алфавите, их программировать не нужно.
также есть несколько строчных (маленьких) букв, совпадающих по начертанию с латинскими буквами - а, е, о, р, с, х, у,которые тоже программировать не нужно.
одновременно больше 8 букв запрограммировать НЕЛЬЗЯ. если по какому-то адресу запрограммировать другой символ, то экран покажет этот символ, а не тот, что был запрограммирован ранее.
для слов ВРАЩЕНИЕ ВЛЕВО достаточно запрограммировать 3 символа Щ, И, Л. все остальные символы будут из латинского алфавита.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 17:44:10 
Нашел транзистор. Понюхал.

Зарегистрирован: Вс мар 27, 2022 09:38:17
Сообщений: 160
Рейтинг сообщения: 0
Спасибо за материал конечно но ничего я там не нашёл для себя.
Там OLED у меня LCD1602.
Они по разному управляются как минимум.
Функции я не понимаю, что там за функции, и как они работают.
Они там просто вызываются и что-то делают.
Вобщем я не понял ничего.
Но всё равно СПАСИБО!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 18:02:01 
Грызет канифоль
Аватар пользователя

Карма: 1
Рейтинг сообщений: 25
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 250
Рейтинг сообщения: 0
купите дисплей с кириллицей и не партесь. у winstar такие дисплеи имеют суффикс CTK. например:
https://www.chipdip.ru/product/wh1602b-yyh-ctk


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 18:52:06 
Нашел транзистор. Понюхал.

Зарегистрирован: Вс мар 27, 2022 09:38:17
Сообщений: 160
Рейтинг сообщения: 0
Спасибо!
Так блин этих куплено 5 шт на алике.
И обидно что не понимают по Русски!
Ну я правда сначала думал что типа ерунда
можно писать по Русски через CGRAM люди же
как-то делают. Но вот шото не получается...
Криво как-то. Чего то не хватает.
Какой-то мелочи но не могу догадатся какой...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 19:19:49 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1213
Рейтинг сообщения: 0
Совсем немного не хватает.)
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 19:26:24 
Друг Кота

Карма: 2
Рейтинг сообщений: 67
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8163
Откуда: .ru
Рейтинг сообщения: 0
Там OLED у меня LCD1602.

Там LCD, OLED, TFT...

а конкретно LCD1602 там действительно нет)) давно с ним не работал...
но сути это не меняет.
все экраны работают одинаково)) а символы выводятся на экран с помощью знакогенератора...

даташит же есть...

https://docs.yandex.ru/docs/view?tm=168 ... 26nosw%3D1

по умолчанию LCD1602 использует готовый знакогенератор... ROM (CGROM)

однако, в даташите чёрным по белому написано... что пользователь может записать в RAM (CGRAM) любые свои символы...
Вложение:
Screenshot_1.jpg [44.63 KiB]
Скачиваний: 32

именно так я и делал)) я выводил на экран LCD1602 не только свои символы... но и даже рисовал различные картинки))
:tea:
только это было давно... я уже не помню всех команд... надо перечитывать даташит ))
где-то на одном из форумов... валяется исходник... теперь уже не вспомню где))
:dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 20:19:54 
Нашел транзистор. Понюхал.

Зарегистрирован: Вс мар 27, 2022 09:38:17
Сообщений: 160
Рейтинг сообщения: 0
Да я всё понимаю.
Я всё делаю по правилам.
Нарисовать символ любой и вывести вообще без проблем.
но только один раз. Второй раз перезаписывает второе слово в первое.
Вот в чём проблема а не в том как его нарисовать и загнать в CGRAM.
В итоге выходит чёрти что. А так одно слово пишет нормально.
Всё выводится записывается переписывается...
Яж не могу пользоватся только одним Русским словом а потом латиница правильно?
Иначе зачем тогда эта трата нервов?
Хочется чтоб читалось удобно. Ни ктож не пользуется в смартфоне Английскими настройками,
всеш выбирают Русскую раскладку и вообще всё меню и т.д.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 21:22:12 
Друг Кота

Карма: 68
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Нужно уметь программировать, мыслить логически, знать и понимать работу контроллера дисплея, а не "всё делаю по правилам".
Тогда всё наладится. Всё же элементарно:
1. есть массив знаков, в этом массиве можно нарисовать ещё (добавить к нему, а не заменить весь его своими единственными восемью) 8 своих, то есть дополняете недостающие кириллические варианты к существующим английским. И работаете с этим массивом, одновременно и с латиницей и с кириллицей и с иероглифами - со всем массивом знакогенератора.
2. есть область памяти дисплея, к которой надо относиться как к набору ссылок на массив знакогенератора. Именно ссылок, а не самих знаков (а жаль). То есть, если в массиве внезапно содержимое изменяется, это одновременно меняется на дисплее, потому что он по ссылке берет данные каждое свое обновление. Поэтому невозможно в дисплей размером 2х16 загнать одновременно 32 своих знака. Только динамически, а в 1 единицу времени - нет.

в слове ВЛЕВО выделенные красным - латиница. сосчитайте, сколько букв надо дорисовать своих?
то же для ВРАЩЕНИЕ

ну и заодно ВПРАВО

сосчитали? если получилось, что опять надо больше 4, то перечитывайте весь текст всей этой ветки заново, пока не станет 4.

Добавлено after 12 minutes 17 seconds:
Могу предложить иначе.
Выведите на экран текст, набранный латиницей:
BPAhEHiE BLEBO
Использовать только таблицу знакогенератора. Ничего не отрисовывать, только команды помещения адреса ячейки знакогенератора на дисплей.
Затем нарисуйте в ячейках символы Щ И Л
Замените адреса ячеек на h i L на адреса нарисованных соответственно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 21:34:18 
Нашел транзистор. Понюхал.

Зарегистрирован: Вс мар 27, 2022 09:38:17
Сообщений: 160
Рейтинг сообщения: 0
Я хотел чуть не так.
Хотел записать в ОЗУ например
первое слово " защита " а второе " батареи "
и всё кирллическими символами переписав CGRAM 2 раза.
Но не получается. Он тогда переписывает и превое слово.
Он наверно связывает ячейки...
Ну если я заполню 8 символов недостающими латиницы то
возможно и выйдут слова.
Нада попробовать...
Спасибо за идею.
А то я размечтался думаю сейчас создам массив
там будет Кириллица и большая и маленькая памяти ещё 2,5 кБ
хватит! Думал буду рисовать как карандашом по листку бумаги.
Ну спасибо за мысль...
Завтра надо попробовать шото повыводить по составлять.
Чуть не удобно нежели просто выводить. Писанины всё таки больше...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 21:45:13 
Потрогал лапой паяльник
Аватар пользователя

Карма: 4
Рейтинг сообщений: 79
Зарегистрирован: Сб фев 18, 2023 21:51:01
Сообщений: 306
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
первое слово " защита " а второе " батареи " и всё кирллическими символами
Далась вам эта кириллица... Я ж не просто так написал про OBEC PACTET - в этих двух словах нет ни одной кириллической буквы, лишь только латиница. Половина букв русского и латинского алфавитов совпадают по начертанию, отчего ж этим и не воспользоваться?!

_________________
Всего доброго.
Евгений.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 22:20:12 
Друг Кота

Карма: 68
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Более того, именно это идеологически верно для Знакосинтезирующих ЖКИ
Рисовать - это больше удел Графических ЖКИ

а тут получается наоборот.

Добавлено after 2 minutes 6 seconds:
а самое смешное: в ЖКИ с кириллицей нет полного алфавита, часть символов все равно берется из латинского )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Ср мар 29, 2023 22:44:46 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6039
Откуда: Minsk
Рейтинг сообщения: 0
Хочется, чтоб читалось удобно. Никто же не пользуется в смартфоне английскими настройками

А зря. Хоть американе и нехорошие человеки :? , но всё же английский язык (он не виноват!) - международный, им пользуются и китайцы, и японцы (несмотря на свои иероглифы), так что надо осваивать хотя бы его техническое подмножество, ориентированное на конкретную предметную область. Тогда мы не будем так одиноки со своим хотя и "великим и могучим", конечно, но увы - постепенно становящийся в технике рудиментом. Я так думаю. И одной проблемой будет меньше - берём любой LCD. Постепенно привыкнем и перестаём замечать.
Вот в авиации - заносчивые амеры не перешли на метрическую систему, и мы, чертыхаясь, называем высоту в футах, а скорость - в милях/час. А куда деваться - не они летают на Яках и Туполях, а мы - на Боингах и Арбузах. :o

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си
СообщениеДобавлено: Чт мар 30, 2023 13:35:15 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1213
Рейтинг сообщения: 0
Он наверно связывает ячейки...

Ужас. Пока сам шишки не набьёшь - не дойдёт.(
Знакогенератор ОДИН на ВЕСЬ экран! Ага?
В примере (это вся программа без инициализации) я просто пишу текст кириллицей и ни о чём не думаю, за меня думает библиотека. Я лишь должен следить о превышении одновременно отображаемых на экране 8-ми русских символов. Потому в комментариях они и указаны.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  1,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

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


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y