![]() |
Цитата:
Возможно вы заметили что у меня в проекте будет присутствовать ещё и OLED дисплей для отображения всякой инфы. Так вот, я в неё добавил графику, шрифты и т.д и всё это жрёт не мало памяти) + код для управления tda у меня на почти 1000 строк. Проект будет построен на arduino due, 100%! Я не хочу в какойто определённый момент застрять на том что не хватает памяти для реализации, той или иной идеи. А так проект я делаю для себя, и одновременно делюсь с вами и конечно выслушаю ваши мнения) т.е. я хочу сделать базу для open source проекта с возможностью кастомизации и набором конструктивных решений. |
Цитата:
|
Цитата:
на плате у меня специально отведено пространство под блок питания размером 55х33мм, хватит? Если не хватит придётся 2-й этаж строить) благо корпус это позволяет. |
Для начало токи скажи по каждому, а потом уже можно ,что-то говорить....
|
Цитата:
3.3В ток около 30-120мА в зависимости от нагрузки Arduino DUE 5.1В до 2A питание USB и периферии. |
Alekssandr
тысяча строк на управление микрухой? Офигеть! Надо посмотреть будет что там такого хитрого. |
Оу нашёл твой код!
Да так памяти не хватит ни какой! case 6: tdaparametr="GAIN REAR R"; if(selectmenu==true){ encoder_data=dueFlashStorage.read(25);} tdapodparametr="0 to 39"; add = 1; encoder_data = constrain(encoder_data, 0,39); rear_r = encoder_data; rear_rtda = 223-(rear_r+attenation); if(selectmenu==false){ tda7719(16, rear_rtda); //Настройки динамика задний правый :Speaker Attenuator Left Front } break; case 7: tdaparametr="GAIN SUBWOOFER L"; if(selectmenu==true){ encoder_data=dueFlashStorage.read(26);} tdapodparametr="0 to 39"; add = 1; encoder_data = constrain(encoder_data, 0,39); sub_l = encoder_data; sub_ltda = 223-(sub_l+attenation); if(selectmenu==false){ tda7719(17, sub_ltda); //Настройки сабвуфера левый :Speaker Attenuator Left Front } break; А теперь смотри фишку! Можно создать функцию, скажем PARAM и передавать в неё значения. Сильно с твоим кодом не разбирался, но вот так: case 5: tdaparametr="GAIN REAR L"; PARAM(24,100,16) break; case 6: tdaparametr="GAIN REAR R"; PARAM(25,100,16) break; .... void PARAM(int a , int b, int c){ if(selectmenu==true){ encoder_data=dueFlashStorage.read(a);} tdapodparametr="0 to 39"; add = 1; encoder_data = constrain(encoder_data, 0,39); rear_l = encoder_data; rear_ltda = 223-(b+attenation); if(selectmenu==false){ tda7719(c, rear_ltda); //Настройки динамика задний левый :Speaker Attenuator Left Front } идея понятна? Таким образом ты выкинешь треть кода своего! так же можешь сделать возвратный параметр из функции, но он тебе не нужен в данном коде. |
Александр, твое устройство для планшета и ты планируешь делать приложение под андроид, зачем же дисплей туда прикручивать? Через приложение все настройки можно организовать. Уберешь дисплей и размер убавиться и можно будет на анрдуино про микро делать.
|
Так у меня почти тоже самое. 5 основных функции. Просто все параметры заведены в одну функцию void meny_oled. А вы предлагаете сделать почти тоже самое только вывести каждый параметр в отдельную функцию, только смысл, возможно удобней будет конечно.
Или я чтото не понял? весь код здесь 172) void encoder() //обработка энкодера, и пока его не крутанешь остальные функции вызываться не будут. 210) void meny_oled() //здесь все меню которые есть, и расчеты для аудиопроца . 817) void tda7719(int subaddress, int data) //сюда подаются параметры из меню и отправляются на аудиопроц по I2C 824) void displayprint() //Здесь происходит отображение инфы на дисплее 852) void flaschwrite() //эта функция, сохраняет параметры в память после 1 сек как перестали вращать энкодер. По поводу того что я ещё приделал дисплей он мне нужен, для отображения всякой важной информации, да и чтоб устройство было самодостаточным. управление с android тоже будет но попозже как печатную плату сделаю. Дисплей останется 100%. Думаю сделать 2 платы внутри, 1 снизу для слаботочки, 2-ю сверху для блоков питания и усилителей. (Корпус заказал сегодня за 1200р), причем верхнюю без проблем можно будет вытравить самому) чтоб экономичней вышло. |
Alekssandr
Я про то, что там куча повторяющегося кода. Который различается на один или пару параметров. Предлагаю такие куски запихать в функцию и передавать в неё параметры. Очень много однотипного кода. Если его сократить, то программа сократится втрое наверное. |
Часовой пояс GMT +4, время: 10:04. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot