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

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

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


gavi6
Нашел транзистор. Понюхал.
Сообщения: 191
Зарегистрирован: Вс мар 04, 2018 19:38:32

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

Сообщение gavi6 »

"отредактировал" под себя remote.exe

Изображение

но вот не пойму - а как для андроида remote.apk создать из проекта в QT ? я так понимаю что окно приложения будет одинаковым и для windows и для android ?

Добавлено after 17 minutes 41 second:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
ну не так прост этот QT
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Qt для Android (arm) нужен.
В инсталляторе Qt помимо версии для системы можно и версию для Android поставить.
Ну и Android SDK и NDK нужны.
gavi6
Нашел транзистор. Понюхал.
Сообщения: 191
Зарегистрирован: Вс мар 04, 2018 19:38:32

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

Сообщение gavi6 »

WiseLord

если возможно конечно,

то где нужно поправить, чтобы при выборе источника происходило включение? Именно только включение из спящего режима. А после включения уже согласно проекту.

(т.е. имеется 4 кнопки выбора источника на морде усилителя (подключены параллельно кнопке выбора источника). Кнопка питания маленькая и смещена в неудобную позицию. И почти 10 лет включал усилитель нажатием на одну из кнопок выбора источника - постоянно по привычке тыкаю до сих пор в кнопки выбора источника))))
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Смотрите функцию getAction(), точнее, её конец.

Там идут переназначения команд и отключение их части в разных режимах.

В частности, секция "Remap NEXT/PREV_INPUT actions to INPUT_X" - превращает эту команду в команду выбора конкретного входа, а секция "// Disable actions except POWERON, TESTMODE and TEMPMODE in standby mode" - отключает в ждущем режиме всё, кроме перечисленного. Нужно просто переделать на что-то вроде
// Disable actions except POWERON, TESTMODE and TEMPMODE in standby mode

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

if (dispMode == MODE_STANDBY) {
    if (action != ACTION_EXIT_STANDBY && action != ACTION_TESTMODE && action != ACTION_TEMPMODE && action != CMD_RC_IN_0 && ...)
        action = ACTION_NOACTION;
    if (action == CMD_RC_IN_0 || action == CMD_RC_IN_1 ...)
        action = ACTION_EXIT_STANDBY;
}

То есть, что-то вроде этого.

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

Более интересным было бы, если бы были свободные ножки у МК, и на эти кнопки просто сразу вешать нужные действия CMD_RC_IN_0..CMD_RC_IN_1. Тогда их нажатие сразу бы включало нужный вход с выходом из ждущего режима.

P.S. В принципе, это возможно на ATmega32, если использовать 4 из тех 8 выводов, что отданы дисплею. Его работе это не помешает.

Вот пример, как добавляются 4 кнопки и длительное нажатие на них приводит к тому, что требовалось. Кнопки просто так к линиям дисплея подключать нельзя (иначе получится КЗ, когда кнопка тянет линию к земле, а МК - к питанию), только через резисторы (500-1000 Ом).
Аватара пользователя
megagad
Родился
Сообщения: 19
Зарегистрирован: Вт сен 05, 2017 21:41:37
Откуда: Воронеж
Контактная информация:

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

Сообщение megagad »

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

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

Сообщение WiseLord »

Возможно. Не знаю, насколько он совместим с SSD1306.

P.S.
Беглый взгляд на даташит показывает, что по командам SSD1306 и SSD1309 практически идентичны, так что должно работать.
gavi6
Нашел транзистор. Понюхал.
Сообщения: 191
Зарегистрирован: Вс мар 04, 2018 19:38:32

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

Сообщение gavi6 »

1. TDA7439 - слушал слушал и так и не понял
-работают ли "тонкоррекция", 3Д, "отключение тембра" прочие плюшки на ней?

2. тестил на домашних: при переключении источника начинают сразу крутить громкость. и получается что регулируют не громкость, а предусиление входа.
подскажите что именно нужно изменить чтобы убрать регулировку предусиления при переключении входов? (хотя изящнее было бы спрятать это дело в настройки, но это выходит за рамки моих познаний))))
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

1. конечно же, нет.
2. handleEncoder() проще всего. Ближе к концу, добавить в список режимов, где идёт переход на громкость, MODE_SND_GAIN0..4.
gavi6
Нашел транзистор. Понюхал.
Сообщения: 191
Зарегистрирован: Вс мар 04, 2018 19:38:32

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

Сообщение gavi6 »

Спойлерbreak;
case MODE_SPECTRUM:
showSpectrum();
break;
case MODE_FM_RADIO:
showRadio(MODE_RADIO_CHAN);
break;
case MODE_FM_TUNE:
showRadio(MODE_RADIO_TUNE);
break;
case MODE_MUTE:
showMute();
break;
case MODE_LOUDNESS:
showLoudness();
break;
case MODE_SURROUND:
showSurround();
break;
case MODE_EFFECT_3D:
showEffect3d();
break;
case MODE_TONE_BYPASS:
showToneBypass();
break;
case MODE_TIME:
case MODE_TIME_EDIT:
showTime();
break;
case MODE_TIMER:
showTimer(getStbyTimer());
break;
case MODE_SILENCE_TIMER:
showTimer(getSilenceTimer());
break;
#ifdef _ALARM
case MODE_ALARM:
case MODE_ALARM_EDIT:
showAlarm();
break;
#endif
case MODE_BR:
showBrWork();
break;
default:
showSndParam(dispMode);
break;
}

displayUpdate();




куда конкретно в action.c вставить "MODE_SND_GAIN0..4" ?
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Сюда. Во всех этих режимах экрана регулируется громкость.
gavi6
Нашел транзистор. Понюхал.
Сообщения: 191
Зарегистрирован: Вс мар 04, 2018 19:38:32

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

Сообщение gavi6 »

так? слово "case" и ":" тоже нужно?

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

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

Сообщение WiseLord »

Да.

Логика простая - идёт перебор режимов, после которых идёт переключение на SND_VOLUME и (ввиду отсутствия break) дальнейшая регулировка (default) аудиопараметра.

Другие режимы (выше) имеют break в case, поэтому выполняется только часть до break (яркость, настройка на станцию энкодером и т.д).
gavi6
Нашел транзистор. Понюхал.
Сообщения: 191
Зарегистрирован: Вс мар 04, 2018 19:38:32

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

Сообщение gavi6 »

WiseLord

все работает! (MODE_SND_GAIN0..4)

Благодарю Вас!!!

Добавлено after 7 minutes 36 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
- жалко конечно терять такую настройку (предусиление каждого входа).

- может быть возможно где то (в исходниках) задать уровень предусиления каждого входа? (т.е. в прошивке задать и зафиксировать эти уровни).


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

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

Сообщение WiseLord »

Возможно, более логичным было бы сделать это по-другому. При переключении на новый вход устанавливать таймаут в ноль, чтобы сразу уходить. Если же вход тот же - работать как обычно.
То есть, было (функция handleAction())
Спойлер

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

    case CMD_RC_IN_0:
        if (getDefDisplay() == MODE_SPECTRUM && tuner.ic)
            setDefDisplay(MODE_FM_RADIO);
    case CMD_RC_IN_1:
    case CMD_RC_IN_2:
    case CMD_RC_IN_3:
    case CMD_RC_IN_4:
        sndSetInput(action - CMD_RC_IN_0);
#ifdef _SPISW
        SPIswSet(aproc.input);
#endif
        dispMode = MODE_SND_GAIN0 + aproc.input;
        setDisplayTime(DISPLAY_TIME_GAIN);
        tunerSetMute(aproc.mute || aproc.input);
        break;
Стало:
Спойлер

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

    case CMD_RC_IN_0:
        if (getDefDisplay() == MODE_SPECTRUM && tuner.ic)
            setDefDisplay(MODE_FM_RADIO);
    case CMD_RC_IN_1:
    case CMD_RC_IN_2:
    case CMD_RC_IN_3:
    case CMD_RC_IN_4:
        if (aproc.input == action - CMD_RC_IN_0) {
            setDisplayTime(DISPLAY_TIME_GAIN);
        } else {
            setDefDisplay(0);
        }
        sndSetInput(action - CMD_RC_IN_0);
#ifdef _SPISW
        SPIswSet(aproc.input);
#endif
        dispMode = MODE_SND_GAIN0 + aproc.input;
        tunerSetMute(aproc.mute || aproc.input);
        break;

То есть, при переключении на новый вход таймаут его экрана будет нулевой, и экран сразу переключится на дефолтный, поэтому регулировка энкодером (пультом) сразу пойдёт для громкости. Если же нажать на этот же вход ещё раз, то aproc.input (текущий вход) и action - CMD_RC_IN_0 (переключаемый) должны совпасть, и таймаут останется обычным.

По идее, должно работать именно так, но это нужно проверять в железе.

Ещё вариант "достучаться" до этой настройки после установки таймаута в ноль - добавить её в цикл переключения аудиопараметров. То есть, в sndNextParam() поставить условием переключения на громкость не if (*mode >= MODE_SND_GAIN0), а что-то вроде if (*mode > MODE_SND_GAIN2), тогда входы 0..2 тоже должны будут перебираться по пятой кнопке как аудиопараметры. В общем, тоже нужно проверять.
gavi6
Нашел транзистор. Понюхал.
Сообщения: 191
Зарегистрирован: Вс мар 04, 2018 19:38:32

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

Сообщение gavi6 »

[uquote="WiseLord",url="/forum/viewtopic.php?p=3376678#p3376678"]Ещё вариант "достучаться" до этой настройки после установки таймаута в ноль - добавить её в цикл переключения аудиопараметров.[/uquote]


т.е. это там где "Тембр НЧ", "Тембр СЧ", "Тембр ВЧ", "Усиление", "Баланс" ?

Вот это было бы удобно!


==============
==============
==============


убрал "=" и изменил "0" на "4" в if (dispMode > MODE_SND_GAIN4


перестали входы переключаться и нет на пятой кнопки настройки предусиления каждого входа:


// Remap NEXT/PREV_INPUT actions to INPUT_X


if (action == CMD_RC_IN_NEXT) {

action = CMD_RC_IN_0 + aproc.input;

if (dispMode > MODE_SND_GAIN4 && dispMode < MODE_SND_END) {

action += 1;

if (action >= CMD_RC_IN_0 + aproc.inCnt)

action = CMD_RC_IN_0;

}

}

if (action == CMD_RC_IN_PREV) {

action = CMD_RC_IN_0 + aproc.input;

if (dispMode > MODE_SND_GAIN4 && dispMode < MODE_SND_END) {

action -= 1;

if (action < CMD_RC_IN_0)

action += aproc.inCnt;

}

}
Аватара пользователя
aleardo
Нашел транзистор. Понюхал.
Сообщения: 150
Зарегистрирован: Ср ноя 25, 2015 20:47:13

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

Сообщение aleardo »

Хорошему проекту Хорошую иконку для приложений!!! Появилось предложение на новые авторские иконки приложений windows и android
например такие варианты...
Изображение
ico, png... на любой вкус и цвет любой сложности. например...
Вложения
ampctrl_icon1.zip
(37.08 КБ) 161 скачивание
gavi6
Нашел транзистор. Понюхал.
Сообщения: 191
Зарегистрирован: Вс мар 04, 2018 19:38:32

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

Сообщение gavi6 »

[uquote="aleardo",url="/forum/viewtopic.php?p=3377182#p3377182"]Хорошему проекту Хорошую иконку для приложений!!! Появилось предложение на новые авторские иконки приложений windows и android
например такие варианты...
Изображение
ico, png... на любой вкус и цвет любой сложности. например...[/uquote]


только одна иконка во вложении?
Аватара пользователя
aleardo
Нашел транзистор. Понюхал.
Сообщения: 150
Зарегистрирован: Ср ноя 25, 2015 20:47:13

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

Сообщение aleardo »

Это был пример ico иконки, вечером после работы выложу остальные и еще пару вариантов.
foxmikola
Родился
Сообщения: 18
Зарегистрирован: Вт янв 05, 2016 11:44:44

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

Сообщение foxmikola »

Есть вот такой дисплей m112864do-y s005 и как в корпус по размеру подходит, может кто цеплял такой поделитесь!
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Судя по результатам поиска Google, нет такого дисплея.
Ответить

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