- Вложения
-
- IMAG0710.jpg
- (118.72 КБ) 758 скачиваний
Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
Atmega32-PT2323/PT2322-RDA5807m Почти доделал следующий вариант. В процессе наладки заметил следующее - при использовании PT2323/PT2322 необходимо уменьшать номинал резисторов "подтяжки" шины управления вдвое, иначе могут возникать просто фантастические глюки, ранее встречал в форуме жалобы на странное поведение этой связки. Прилагаю фото, которое, надеюсь, доказывает, что маленький дисплей вовсе не портит внешний вид конструкции. Выходная мощность примерно 6х20Вт, ее ограничивают возможности БП и охлаждение радиатора усилителей.
- Реклама
Это с OLED экраном, если не ошибаюсь?
Мне тоже очень нравится, как он выглядит вживую на этом проекте. Но всё же мелковат, к сожалению.
Мне тоже очень нравится, как он выглядит вживую на этом проекте. Но всё же мелковат, к сожалению.
Да, с OLED-экраном.WiseLord писал(а):Это с OLED экраном, если не ошибаюсь?
...
я недавно спрашивал про подключение кнопок через pcf8574. можно ли такое замутить?
Можно, наверное. Я не помню, умеет ли на вход работать эта микросхема.
- Реклама
- Сообщения: 114
- Зарегистрирован: Вс июн 28, 2009 21:51:15
Установил наконец то все в корпус унч, по ощущениям даже заиграл поинтереснее. Но есть вопрос: при включении или переборе входов первой настройкой идет не громкость а усиление, это для чего так сделано, и можно ли управление громкостью сделать первоочередной функцией а настройку усиления второстепенной.
Потому что для каждого входа предусиление может быть своё, что позволяет подстроить источники с разным уровнем.alexfick писал(а):это для чего так сделано
Можно, но не нужно. Так было бы нелогично.alexfick писал(а):можно ли управление громкостью сделать первоочередной функцией
- Сообщения: 114
- Зарегистрирован: Вс июн 28, 2009 21:51:15
А можно ли какимто образом на дисплее LS020 изменять цвета отображения?
Можно. По исходникам (ls020.h и display.h) должно быть понятно, как.
попробовал переписать модуль ls020.c под LPH9157-2 но запутался в вашем коде.
в LPH9157-2 вроде всё проще.
вот ссылки с исходниками
http://lobotryasy.net/lph9157-2.php
https://geektimes.ru/post/255436/
гляньте плиз может там работы на 5 минут
если можно поправьте ls020.c под LPH9157-2 а я проверю сразу
в LPH9157-2 вроде всё проще.
вот ссылки с исходниками
http://lobotryasy.net/lph9157-2.php
https://geektimes.ru/post/255436/
гляньте плиз может там работы на 5 минут
если можно поправьте ls020.c под LPH9157-2 а я проверю сразу
У меня нет этого дисплея, так что подправить я ничего не могу.
Отличия от ls020 по коду будут - другая инициализация (ls020Init) и другая реализация установки прямоугольного окна для вывода (ls020SetWindow). В остальном коде, по большому счёту, изменений быть не должно.
Отличия от ls020 по коду будут - другая инициализация (ls020Init) и другая реализация установки прямоугольного окна для вывода (ls020SetWindow). В остальном коде, по большому счёту, изменений быть не должно.
с инициализацыей я разобрался сразу потом пошел затуп)
А хоть что-то рисуется? точка, линия - не важно.
Для отладки можно просто проинклюдить ls020.h в main.c и после инициализации просто попробовать порисовать тамошними функциями. В частности, для ls020 всё выглядит так:
а) установить режим команд: RS = 0.
б) начать передачу - CS = 0
в) передать несколько команд, для ls020 каждая занимает по два байта на шине (ls020WriteCommand() у меня)
г) закончить передачу - CS = 1
Если планируется рисовать что-то, пунктом (в) будет передача нескольких команд для установки окна (ls020SetWindow() реализует пункты а-г). После чего:
д) установка режима данных: RS = 1.
е) начало передачи - CS = 1
ж) передачи информации - несколько байтов
з) конец передачи - CS = 0.
Аналогично нужно и для другого дисплея:
1. Инициализировать его
2. Описать установку окна для вывода данных
Всё прочее должно работать автоматически, дёргая уже переписанные функции. Естественно, режим дисплея должен быть при инициализации установлен в 8бит. Иначе нужно переопределить цвета и чуть доработать ls020WriteData()).
Для отладки можно просто проинклюдить ls020.h в main.c и после инициализации просто попробовать порисовать тамошними функциями. В частности, для ls020 всё выглядит так:
а) установить режим команд: RS = 0.
б) начать передачу - CS = 0
в) передать несколько команд, для ls020 каждая занимает по два байта на шине (ls020WriteCommand() у меня)
г) закончить передачу - CS = 1
Если планируется рисовать что-то, пунктом (в) будет передача нескольких команд для установки окна (ls020SetWindow() реализует пункты а-г). После чего:
д) установка режима данных: RS = 1.
е) начало передачи - CS = 1
ж) передачи информации - несколько байтов
з) конец передачи - CS = 0.
Аналогично нужно и для другого дисплея:
1. Инициализировать его
2. Описать установку окна для вывода данных
Всё прочее должно работать автоматически, дёргая уже переписанные функции. Естественно, режим дисплея должен быть при инициализации установлен в 8бит. Иначе нужно переопределить цвета и чуть доработать ls020WriteData()).
WiseLord, приветствую и еще раз спасибо.
Вопрос - у меня одного ощущение, что подавление "дребезга" кнопок не совсем оптимально реализовано?
- иногда кракозябра на экран вылезет, иногда зависнет... попробую свежак залить.
Вопрос - у меня одного ощущение, что подавление "дребезга" кнопок не совсем оптимально реализовано?
- иногда кракозябра на экран вылезет, иногда зависнет... попробую свежак залить.
В каком смысле неоптимально?
- иногда кракозябра на экран вылезет, иногда зависнет при нажатии штатных кнопок
А дребезг-то тут при чём?
Если кнопки на одной плате с МК - лучше проверьте качество контактов МК к плате. Мало ли, от механического нажатия контакт где-то теряется.
Если кнопки на одной плате с МК - лучше проверьте качество контактов МК к плате. Мало ли, от механического нажатия контакт где-то теряется.
Да кто его знает причину
кнопки и энкодер на отдельной плате. А так всё очень нравится.


