Например TDA7294

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





Текущее время: Вт апр 16, 2024 18:58:06

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


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



Начать новую тему Ответить на тему  [ Сообщений: 77 ]  1, , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Вт ноя 29, 2022 19:59:20 
Встал на лапы

Зарегистрирован: Вс мар 27, 2022 09:38:17
Сообщений: 115
Рейтинг сообщения: 0
Добрый вечер всем кто тут!
Мужики помогите пожалуйста с кодом.
Хочу научить дисплей LCD1602A выводить наши буквы.
Уже 3 дня не получается с написанием функции для записи в CGRAM.
А потом вывода из неё результата.
Если с латиницей всё хорошо идёт то с нашим ну блин беда.
Прям упёрся в стену и всё!
Помогите кто знает как это делается.
Просто у кого есть время кто решал такие задачки и если не тяжело.
Спасибо!


Вложения:
4.png [66.98 KiB]
Скачиваний: 45
3.png [32.6 KiB]
Скачиваний: 44
2.png [37.35 KiB]
Скачиваний: 45
1.png [78.06 KiB]
Скачиваний: 46
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Вт ноя 29, 2022 20:18:08 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 160
Зарегистрирован: Ср авг 03, 2022 05:22:56
Сообщений: 848
Рейтинг сообщения: 0
Модель дисплея в Протеусе может без проблем выводить "наши" буквы так же как и "ненаши". Откройте документацию на дисплей и посмотрите таблицу символов, вот они:
Изображение
а таблица перекодировки из ANSI вот такая:
Код:
const uint8_t ruscode[] = {0x41, 0xA0, 0x42, 0xA1, 0xE0, 0x45, 0xA3, 0xA4,
                          0xA5, 0xA6, 0x4B, 0xA7, 0x4D, 0x48, 0x4F, 0xA8,
                          0x50, 0x43, 0x54, 0xA9, 0xAA, 0x58, 0xE1, 0xAB,
                          0xAC, 0xE2, 0xAD, 0xAE, 0x62, 0xAF, 0xB0, 0xB1,

                          0x61, 0xB2, 0xB3, 0xB4, 0xE3, 0x65, 0xB6, 0xB7,
                          0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0x6F, 0xBE,
                          0x70, 0x63, 0xBF, 0x79, 0xE4, 0x78, 0xE5, 0xC0,
                          0xC1, 0xE6, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7};


Соответственно ф-ция вывода на дисплей такова:
Код:
/** ----------
 * @brief   Вывод символов на дисплей в строку.
 * @param line - номер строки (0, 1, 2 , 3)
 * @param pos - номер позиции (0 - 20)
 * @param *buf - буфер данных
 * @param size - число выводимых символов
 * @param transcode - запрос перекодировки
 */
void HD44780_Print(uint8_t line, uint8_t pos,
               char *buf, uint8_t size, uint8_t transcode)
{
   uint8_t addr;
   uint8_t ch;

   switch(line){
      case 0: addr = (DDRAM_ADDR | 0) + pos;    break;
      case 1: addr = (DDRAM_ADDR | 0x40) + pos; break;
      case 2: addr = (DDRAM_ADDR | 0x10) + pos; break;
      case 3: addr = (DDRAM_ADDR | 0x50) + pos; break;
   }

   /* установка начального адреса */
   WAIT();
   HD44780_IO_Write(addr, HD44780_CMDMODE);

   /* вывод символов */
   while(size--)
   {
      /* перекодировка по запросу */
      if(transcode)
      {
         switch(*buf){
         case 'А'...'Я': ch = ruscode[*buf - 'А'];
            break;
         case 'а'...'я': ch = ruscode[*buf - 'а' + 32];
            break;
         case 'Ё': ch = 0xA2;
            break;
         case 'ё': ch = 0xB5;
            break;
         default: ch = *buf;
            break;
         }
      }else
         ch = *buf;

      WAIT();
      HD44780_IO_Write(ch, HD44780_DATAMODE);
      buf++;
   }
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Вт ноя 29, 2022 22:26:37 
Это не хвост, это антенна

Карма: 15
Рейтинг сообщений: 177
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1326
Откуда: Тюмень
Рейтинг сообщения: 0
Хочу научить дисплей LCD1602A выводить наши буквы.

Покупаешь дисплей МЕЛТ или WINSTAR и не надо выносить себе мозг… к тому же 8 пользовательских символов (это максимум что можно записать) не позволят полноценно "писать" на кириллице… :dont_know:


Последний раз редактировалось VNS Вт ноя 29, 2022 22:30:07, всего редактировалось 1 раз.

Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Вт ноя 29, 2022 22:29:01 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 296
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1219
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Почему 8? Перед печатью загрузите недостающий символ и отобразите его. Потом другой и так далее. Максимум - да, их 8 . Но замените уже изображенные. Можно все, можно много. Даже можете рисовать псевдо-графики, а также псевдо-фигуры. Правда - медленнее, но куда мы торопимся... Печать на LCD концептуально медленная операция - статичных текстов больше.


Последний раз редактировалось veso74 Вт ноя 29, 2022 22:35:47, всего редактировалось 1 раз.

Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Вт ноя 29, 2022 22:35:32 
Это не хвост, это антенна

Карма: 15
Рейтинг сообщений: 177
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1326
Откуда: Тюмень
Рейтинг сообщения: 0
Почему 8?

Вложение:
1.png [19.73 KiB]
Скачиваний: 47


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Вт ноя 29, 2022 22:40:36 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 296
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1219
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Максимальное количество вместе - да, 8, но ... вставляете новый символ, печатаете, вставляете на его место другой, печатаете ... до бесконечности, много символов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Вт ноя 29, 2022 22:43:40 
Это не хвост, это антенна

Карма: 15
Рейтинг сообщений: 177
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1326
Откуда: Тюмень
Рейтинг сообщения: 0
но ... вставляете новый символ, печатаете, вставляете на его место другой, печатаете ... до бесконечности, много символов.

Предлагаете каждый раз перед выводом текста записывать новые символы? Это же мазохизм… :)) и так порой вывод надписей порой занимает много места в программе при больших меню, а если ещё и это делать, так вообще… :facepalm: хотя кто на что горазд… можно и так если скучно… :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Вт ноя 29, 2022 22:45:31 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 296
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1219
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Только новые символы в знако-генераторе, конечно же. И псевдо-графики. Согласно приложению. Памяти совсем немного занимает, и в PIC собираются, и в ATmega, и в "бедных" ATtiny.


Последний раз редактировалось veso74 Вт ноя 29, 2022 23:06:33, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Вт ноя 29, 2022 23:06:13 
Это не хвост, это антенна

Карма: 15
Рейтинг сообщений: 177
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1326
Откуда: Тюмень
Рейтинг сообщения: 0
Если использовать заглавные и прописные буквы, то придётся прописывать в итоге 47 символов… из своего непрофессионального опыта, это достаточно много… возможно у профессионалов это занимает мало места… спорить не стану… лично у меня при выводе много текста, программы становятся большими, а если использовать что-то подобное, то вообще выйдет за гранью… :))


Последний раз редактировалось VNS Вт ноя 29, 2022 23:09:40, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Вт ноя 29, 2022 23:08:53 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 296
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1219
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Оффтоп: Вы отправляете литературное эссе каждый день в LCD1602? :) Мне не приходилось.

Однако вернемся к приложению LCD: вероятно только несколько слов, как параметры какого-то устройства, одно за другим, медленно, статично ...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Вт ноя 29, 2022 23:26:07 
Это не хвост, это антенна

Карма: 15
Рейтинг сообщений: 177
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1326
Откуда: Тюмень
Рейтинг сообщения: 0
Дело не в скорости вывода символов, а в увеличении программы при наличии расширенного меню, в котором будет много текста…
В общим я не утверждаю, что так у всех… но у меня происходит именно так… :) и если планируется обширное меню, то я выбираю дисплей с кириллицей, а не танцы с бубном… :))) в общим каждый выбирает своё… :beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Вт ноя 29, 2022 23:31:31 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: 0
А что страшного в том, чтобы шрифты во флеш-памяти МК хранить? Один шрифт в знакоместо 16х16 пикселей займет 33кБ (32кБ - данные + 1Б - ширина символа). Все 256 символов никому не нужны обычно, хватит нескольких знаков препинания, латинницы и кириллицы. Ну и зачастую хватит только верхнего регистра, получаем (26+10+33+30)*33=3267Б + 256Б на таблицу перекодировки. Итого: 3523Б. Т.е. в 4кБ можно вполне уложиться. Когда на МК от 16кБ флеша и больше, вообще 0 проблем на шрифт немного потратить.

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Ср ноя 30, 2022 01:49:51 
Это не хвост, это антенна

Карма: 15
Рейтинг сообщений: 177
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1326
Откуда: Тюмень
Рейтинг сообщения: 0
Оффтоп: Вы отправляете литературное эссе каждый день в LCD1602? :) Мне не приходилось.

Нет, зачем же… а вот ради интереса сможете на практике показать в виде прошивки для тини24 – вывод заглавных и прописных букв кириллицы в определённом порядке? Я бы составил ТЗ на такой случай, которое бы в моём исполнении ушло примерно 90% памяти МК… а вот интересно с Вашим подходом сколько уйдёт? И влезет ли вообще в данный МК… если откажитесь так как некогда заниматься ерундой, то я пойму… так что скажете? :)

ЗЫ у меня есть китаец 1602 с таким модулем (PCF8574)...
СпойлерИзображение

Хорошо бы его задействовать для проверки... :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Ср ноя 30, 2022 04:12:18 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 941
Рейтинг сообщения: 0
По моему уже было.
https://www.youtube.com/watch?v=pqv48FtHm0E
https://www.youtube.com/watch?v=bN-XRXLx88Y


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Ср ноя 30, 2022 05:24:00 
Это не хвост, это антенна

Карма: 15
Рейтинг сообщений: 177
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1326
Откуда: Тюмень
Рейтинг сообщения: 0
Дело не в реализации… интересно сколько весит такая реализация? И если значительно много, то возникает вопрос, а зачем?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Ср ноя 30, 2022 08:01:14 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Максимальное количество вместе - да, 8, но ... вставляете новый символ, печатаете, вставляете на его место другой, печатаете ... до бесконечности, много символов.

а вы сами так делали, или теоретизируете?
насколько я знаю, как только вы обновили символ с кодом, предположим, 0х01, то на дисплее все позиции с этим кодом будут показывать обновленный символ, так что "до бесконечности" не выйдет - максимум 8 разных одновременно

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Ср ноя 30, 2022 11:37:43 
Встал на лапы

Зарегистрирован: Вс мар 27, 2022 09:38:17
Сообщений: 115
Рейтинг сообщения: 0
Мужики. Давайте я скину библиотеку свою ( что я использую ) вы посмотрите её и может быть подскажете как мне в ней добавить функцию записи в CGRAM и вывода оттуда?

Добавлено after 2 minutes 47 seconds:
https://disk.yandex.ru/d/_GpvOVhqz-JXTA
вот ссылка на неё на диске.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Ср ноя 30, 2022 12:29:34 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Вроде ведь в этих экранах нет 2го кеша... т.е. если какой-то символ на экране взят из перезаписываемой области, то при перезаписи этой области он тоже изменится, даже если его не обновляли и из-за этого на экран не вывести более 8 различных не имеющихся в основной памяти символа... Это сильно усложняет и без того нелегкую с ним работу по выводу графики и нестандартных символов. Вроде так?
Поправьте, если не прав...

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Ср ноя 30, 2022 12:47:22 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 296
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1219
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
... не выйдет - максимум 8 разных одновременно

Да, Вы прав. Я неправильно понял (РУ-БГ). Максимум 8 НОВЫЕ символы одновременно в 32 символа на LCD1602. Однако это могут быть все буквы, если не перекрываются одновременно. А вот с тем, что на маленьком дисплее часто надписи в сокращенной форме, использование возможно без конфликтов. Лично избегаю кириллицы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
СообщениеДобавлено: Ср ноя 30, 2022 14:47:46 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: 0
Так можно взять нормальный SPI'ный (а то и с параллельной шиной) экранчик, да гонять буфер. И шрифты будут свои — какие хочешь. А на МК с DMA вообще камень практически напрягать не нужно будет, чтобы экран обновить.

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


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

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


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

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


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

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


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