【Chanzo Huria】Udhibiti wa Reverb na Echo kwa Maikrofoni ya Console ya Kuchanganya Kulingana na T5L
——Kutoka DWIN Jukwaa la Wasanidi Programu
Tunafurahi kuwasilisha kisanduku cha chanzo huria kilichoshinda tuzo kutoka kwa Jukwaa la Wasanidi Programu la DWIN leo: udhibiti wa reverb na mwangwi kwa ajili ya kuchanganya maikrofoni ya koni kulingana na chipu ya T5L. Mhandisi wetu anatumia onyesho la azimio la 800x480 ili kuingiliana na bodi ya ukuzaji wa reverb kupitia UART 4 ya T5L, kuwezesha marekebisho sahihi ya vigezo muhimu vya sauti kama vile reverb, mwangwi, sauti ya mvua, sauti kavu, akustisk, kuoza na kuchelewa kwa athari bora za sauti.
[Nyenzo za Kiolesura]



[Ubunifu wa Mradi wa GUI]

【Mradi wa C51】
(1) Programu kuu ya skrini ni kama ifuatavyo:
batili kuu(){
INIT_CPU(); //Uanzishaji wa Mfumo
PORT_Init();//Anzisha mlango wa IO
T0_Init();//Anzisha kipima muda 0
T2_Init();//Anzisha kipima muda 2
my_UART4_Init(115200);
uart_init();//Anzisha mlango mfuatano
ws2812_writ_byte(8);//Anzisha mwanga wa LED
Seti ya Mic();
kuchelewa_ms(1000);
BadilishaUkurasa(1);
wakati(1){
Uart_Handle_all();
OneMsHandle();//1Ms kila wakati
TenMsHandle();
Read_0xF00();//Upakiaji wa data kiotomatiki
}
}
batili TenMsHandle(batili)
{
ikiwa(!TenmsFlag)
kurudi;
TenmsFlag=0;
Sheria ya HunX();
HunX_Kavu();
HunX_WeiYing();
HunX_ShuaiJian();
HunX_Switch();
Echo_Wet();
Echo_Kavu();
Echo_Delay();
Echo_ShuaiJian();
Echo_Switch();
}
HunX_Wet(tupu)
{
u16readst=0;
readst=Read_Dgus(0x1200);
ikiwa(soma==Mic_Set.MicWetNum)
kurudi;
Mic_Set.MicWetNum=kusoma;
MicEffectSend(Mic_Set.MicWetNum*10,
Seti_ya_Mic.NumYaMicDry*10,
Seti_ya_Mic.MicDiffNum*5,
Mic_Set.MicDecayNum*5,
Mic_Set.HunXiangSW);
(2) Vigezo vinavyohusiana na rejea ni kama ifuatavyo
#ikiwa 1
intreverb_parameter_val(u16 mvua, u16 kavu, u8 diffusion, u8 decayfactor,
u8 ni_kupitisha,hali ya u8 isiyo na maana)
{
#ikiwa imefafanuliwa (TCFG_MIC_EFFECT_ENABLE)&& TCFG_MIC_EFFECT_ENABLE
#ikiwa 1
u8 mode_id = idmode+5;
Seti_ya_kitenzi_cha_Bamba *parmt = &eff_mode[kitambulisho_cha_hali_ya_mode - modi_ya_mic_seq0].plate_reverb_parm;
parmt->parm.wet=wet;
parmt->parm.kavu=kavu;
parmt->parm.usambazaji=usambazaji;
parmt->parm.decayfactor=decayfactor;
parmt-> ni_kupita_nyuma= ni_kupita_nyuma;
plate_reverb_update_parm(&parmt->parm, parmt->is_bypass);
#elif 1
u8 mode_id = idmode+5;
//memcpy(&eff_mode[mode_id - mic_mode_seq0].echo_parm,&packet->data[1], sizeof(EF_ECHO_TOOL_SET));
EF_ECHO_TOOL_SET *parmt = &eff_mode[mode_id -mic_mode_seq0].echo_parm;
parmt->parm.delay=delay_ms;
echo_updata_parm(&parmt->parm, parmt->is_bypass);
#elif 0//PARM_DEBUG
ECHO_PARM_SET *parm = &parmt->parm;
log_debug("delay%d, decayval %d, filt_enable %d, lpf_cutoff %d, wetgain %d, drygain %d\n",
parm->kuchelewa, parm->kuoza,parm->kuwezeshwa_kuchujwa, parm->lpf_kukatwa, parm->kutozwa, parm->kutozwa, parm->kutozwa);
#endif
#endif
rudisha 0;
}
(3) Vigezo vinavyohusiana na mwangwi ni kama ifuatavyo:
int Echo_parameter_val(u16 mvua,u16 kavu,u16 kuchelewa,u16 decayfactor,
u16 is_bypass, u16 idmode)
{
#ikiwa imefafanuliwa(TCFG_MIC_EFFECT_ENABLE) &&TCFG_MIC_EFFECT_ENABLE
#ikiwaTCFG_MIC_EFFECT_SEL==MIC_EFFECT_REVERB_ECHO
u8 mode_id = idmode+5;
EF_ECHO_TOOL_SET*parmt = &eff_mode[mode_id - mic_mode_seq0].echo_parm;
parmt->parm.wetgain=mvua;
parmt->parm.sitini=kavu;
parmt->parm.delay=kuchelewa;
parmt->parm.decayval=kisababishi cha kuoza;
parmt-> ni_kupita_nyuma= ni_kupita_nyuma;
echo_updata_parm(&parmt->parm, parmt->is_bypass);
#endif
rudisha 0;
#endif
}










