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

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


Ответить

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

Чт май 10, 2018 19:39:10

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

Изображение

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

Добавлено after 17 minutes 41 second:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
ну не так прост этот QT

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

Чт май 10, 2018 21:26:43

Qt для Android (arm) нужен.
В инсталляторе Qt помимо версии для системы можно и версию для Android поставить.
Ну и Android SDK и NDK нужны.

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

Пт май 11, 2018 21:36:24

WiseLord

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

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

(т.е. имеется 4 кнопки выбора источника на морде усилителя (подключены параллельно кнопке выбора источника). Кнопка питания маленькая и смещена в неудобную позицию. И почти 10 лет включал усилитель нажатием на одну из кнопок выбора источника - постоянно по привычке тыкаю до сих пор в кнопки выбора источника))))

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

Сб май 12, 2018 06:36:56

Смотрите функцию 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 Ом).

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

Вс май 13, 2018 13:42:27

WiseLord, подскажите, такойдисплей будет работать?

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

Вс май 13, 2018 14:05:47

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

P.S.
Беглый взгляд на даташит показывает, что по командам SSD1306 и SSD1309 практически идентичны, так что должно работать.

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

Пн май 14, 2018 00:31:24

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

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

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

Пн май 14, 2018 00:42:11

1. конечно же, нет.
2. handleEncoder() проще всего. Ближе к концу, добавить в список режимов, где идёт переход на громкость, MODE_SND_GAIN0..4.

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

Вт май 15, 2018 09:16:50

Спойлер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" ?

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

Вт май 15, 2018 09:26:59

Сюда. Во всех этих режимах экрана регулируется громкость.

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

Вт май 15, 2018 10:15:37

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

Изображение

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

Вт май 15, 2018 10:29:52

Да.

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

Другие режимы (выше) имеют break в case, поэтому выполняется только часть до break (яркость, настройка на станцию энкодером и т.д).

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

Вт май 15, 2018 11:31:19

WiseLord

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

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

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

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


(просто в тюнере у меня, в отличии от компьютера и блютуса, уровень звука заметно ниже - хотелось бы привести их к общему знаменателю).

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

Вт май 15, 2018 12:45:37

Возможно, более логичным было бы сделать это по-другому. При переключении на новый вход устанавливать таймаут в ноль, чтобы сразу уходить. Если же вход тот же - работать как обычно.
То есть, было (функция 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 тоже должны будут перебираться по пятой кнопке как аудиопараметры. В общем, тоже нужно проверять.

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

Вт май 15, 2018 13:31:19

Ещё вариант "достучаться" до этой настройки после установки таймаута в ноль - добавить её в цикл переключения аудиопараметров.



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

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


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


убрал "=" и изменил "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;

}

}

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

Вт май 15, 2018 20:24:51

Хорошему проекту Хорошую иконку для приложений!!! Появилось предложение на новые авторские иконки приложений windows и android
например такие варианты...
Изображение
ico, png... на любой вкус и цвет любой сложности. например...
Вложения
ampctrl_icon1.zip
(37.08 KiB) Скачиваний: 144

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

Вт май 15, 2018 20:46:06

Хорошему проекту Хорошую иконку для приложений!!! Появилось предложение на новые авторские иконки приложений windows и android
например такие варианты...
Изображение
ico, png... на любой вкус и цвет любой сложности. например...



только одна иконка во вложении?

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

Ср май 16, 2018 05:01:18

Это был пример ico иконки, вечером после работы выложу остальные и еще пару вариантов.

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

Ср май 16, 2018 10:21:34

Есть вот такой дисплей m112864do-y s005 и как в корпус по размеру подходит, может кто цеплял такой поделитесь!

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

Ср май 16, 2018 12:23:16

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