Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Ответить
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

А в каком порядке идёт закрашивание области символа? Я так и не дождался ответа.

P.S. Иконки закрашиваются правильно, потому что они отрисовываются ОЧЕНЬ неоптимально. Каждая точка иконки отрисовывается как отдельный прямоугольник размером 1x1, со всеми сопутствующими инициализациями. Переделать бы, но опять же - дисплеев в железе нет.
Контактная информация:
Реклама
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Сообщение mixa232323 »

у вас строка заполняется с право налево и следующая строка выше и тд
в моем варианте строка заполняется с верху вниз и следующая строка левее

Добавлено after 11 minutes 43 seconds:
[uquote="WiseLord",url="/forum/viewtopic.php?p=3191440#p3191440"]А в каком порядке идёт закрашивание области символа? Я так и не дождался ответа.

P.S. Иконки закрашиваются правильно, потому что они отрисовываются ОЧЕНЬ неоптимально. Каждая точка иконки отрисовывается как отдельный прямоугольник размером 1x1, со всеми сопутствующими инициализациями. Переделать бы, но опять же - дисплеев в железе нет.[/uquote]

у меня есть могу проверить
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Только что переписал вывод иконок на LS020 - сейчас они тоже не попиксельно выводятся, а всем массивом целиком. Заодно освежил в памяти, как это работает.
А вообще, для начала, я бы попробовал поменять вложенность циклов:

Код: Выделить всё

for(i = 0; i < 8; i++) {
    for (my = 0; my < fp[FONT_MULT]; my++) {
        for (j = 0; j < swd; j++) {
на

Код: Выделить всё

for (my = 0; my < fp[FONT_MULT]; my++) {
    for (j = 0; j < swd; j++) {
        for(i = 0; i < 8; i++) {
А потом играть вариантами:

(128>>i) <=> (1<<i)

(fp[FONT_HEIGHT] - k - 1) <=> k

Это будет тем или иным образом разворачивать выводимые байты.
Контактная информация:
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Сообщение mixa232323 »

поменялось но не то

надо что бы начинало с последнего байта 8 бита потом предпоследнего байта 8 бита и так до самого первого
и опять с последнего байта 7 бита до 1 байта и тд
Последний раз редактировалось mixa232323 Пн сен 25, 2017 10:22:47, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Ну не то, так не то. Картинок я до сих пор не увидел, так что гадать что именно там не то, не буду.
Контактная информация:
Реклама
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Сообщение mixa232323 »

нечем отчетливые снимки делать
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

mixa232323 писал(а):надо что бы начинало с последнего байта 8 бита потом предпоследнего байта 8 бита и так до самого первого
и опять с последнего байта 7 бита до 1 байта и тд
Я уже написал - нужно пробовать:
- менять биты в байте: (1<<i) против (128>>i)
- менять направление лево-право: j против swd - 1 - j
- менять горизонтальные блоки в символе: k против fp[FONT_HEIGHT] - 1 - k
Какая-то из этих восьми комбинаций даст правильный символ.

P.S. Сделал картинки, чтобы было понятнее:

Оригинальный вывод:
СпойлерИзображение
Меняем биты в байте:
СпойлерИзображение
Меняем направление лево-право:
СпойлерИзображение
Меняем горизонтальные блоки в символе:
СпойлерИзображение
Контактная информация:
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Сообщение mixa232323 »

телефон пришел в себя сфотал
у меня вот так

Добавлено after 6 minutes 56 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
первый это 9 второй 1

Добавлено after 8 minutes 39 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
направление заполнения
Вложения
1.rar
(784.16 КБ) 235 скачиваний
IMG_20170925_123607.rar
(855.78 КБ) 285 скачиваний
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Как я уже говорил, во-первых, нужно поменять порядок вложенности циклов. Тогда шрифты развернутся на 90 градусов. А уже потом играть указанными параметрами.
Контактная информация:
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Сообщение mixa232323 »

поскольку я ничего не понимаю в коде я изуродую код от LS020 чтобы было как у меня

симуляцию для протеуса брать в архиве
Вложения
ampcontrol-m32.rar
(930.6 КБ) 218 скачиваний
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Кстати, в этом случае лучше взять самые последние исходники с github, там я вчера-сегодня немного упрощал код ls020.

P.S. Попробуйте так (сравните файл со своим, и поймёте, что я имел в виду под сменой вложенности циклов)

Добавлено after 1 hour 22 minutes 23 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864

mixa232323:

Скачайте самые последние исходники отсюда: https://github.com/WiseLord/ampcontrol/tree/m32

Также скачайте модифицированный вариант: https://github.com/WiseLord/ampcontrol/tree/m32-lph9157

В нём я перешёл для LS020 на то же (0x0504) направление обхода региона вывода, как, по идее, происходит в LPH9157.

Да, после этого получились "крякозябры" везде. Но, после небольших изменений, и в этом направлении обхода я получил что хотел. Можете проверить оба варианта кода в Proteus и увидите, что всё выглядит одинаково.

Вся разница - вот она: https://github.com/WiseLord/ampcontrol/ ... split&ts=2

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

P.S. Честно говоря, мне новый вариант даже больше нравится с 0x5000, чем с 0x5004. По коду более понятно, и плюс можно ещё немножко оптимизировать скорость.
Вложения
ls020.c.zip
(2.29 КБ) 174 скачивания
Контактная информация:
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Сообщение mixa232323 »

вот обновленный с github
Вложения
ampcontrol-m32.rar
(913.85 КБ) 245 скачиваний
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

А зачем он мне?
Контактная информация:
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Сообщение mixa232323 »

типа готово?
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Что готово? Я не вижу там ни строчки инициализации для Вашего дисплея.
Контактная информация:
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Сообщение mixa232323 »

вот теперь работает

Добавлено after 49 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
готово!!!
допилю и выложу

Добавлено after 3 minutes 17 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
надо только оптимизировать

Добавлено after 3 minutes 38 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
можно попробовать с желтой платой он же ALPS
Вложения
ls020.c
(8.36 КБ) 216 скачиваний
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Ну наконец-то.
Заодно проверьте и вариант с поворотом на 180 градусов, работает ли.
Потом сбросите мне рабочий итоговый файл, а я добавлю его уже не как LS020, а с другим именем. За Вами тестирование.

Из возможных оптимизаций - вынесите в отрисовке шрифта и иконок pgmData = pgm_read_byte() чуть выше (из цикла for) - нет смысла читать 8 раз подряд одно и то же.
Контактная информация:
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Сообщение mixa232323 »

LS020_ROTATE_180 при отключении не работал я переделал
добавил отключение питания дисплея

Добавлено after 4 minutes 7 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
по поводу оптимизации сделал что знал дальше смотрите сами
если что не так отпишите

Добавлено after 4 minutes 31 second:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
можно еще регулировку контрастности добавить
Вложения
ls020.c
(7.57 КБ) 195 скачиваний
Родился
Сообщения: 12
Зарегистрирован: Сб окт 03, 2015 21:20:34

Сообщение Serikkrin »

Приветствую. Коллеги, кто пробовал в версии tda7439 программно реализовать тонкомпенсацию?
На малой громкости НЧ неправильно звучат. Вариант-добавлять усиление НЧ фильтра на 3... 4 дб при знач. громкости менее - 40 дб? Цифры навскидку взяты.
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Сообщение mixa232323 »

подключил дисплей LS020 зеркало выдает
Ответить

Вернуться в «Статьи»