【Qhib-Qhov Chaw】Reverb thiab Echo Tswj rau Mixing Console Microphone Raws li T5L
——Los ntawm DWIN Rooj Sab Laj Txog Tus Tsim Khoom
Peb zoo siab los nthuav qhia ib qho rooj plaub qhib tau txais txiaj ntsig los ntawm DWIN Developer Forum hnub no: kev tswj hwm reverb thiab echo rau lub microphone mixing console raws li T5L chip. Peb tus engineer siv lub vijtsam daws teeb meem 800x480 los cuam tshuam nrog lub rooj tsavxwm tsim kho reverb los ntawm UART 4 ntawm T5L, ua kom muaj kev hloov kho meej ntawm cov yam ntxwv tseem ceeb xws li reverb, echo, suab ntub, suab qhuav, acoustic, decay thiab delay rau cov teebmeem suab zoo dua.
[Cov Khoom Siv UI]



[GUI Project Tsim]

【C51 Project】
(1) Qhov kev pab cuam tseem ceeb rau qhov screen yog raws li nram no:
tsis muaj dab tsi tseem ceeb(){
INIT_CPU(); //Kev Pib Siv Lub System
PORT_Init(); // Pib qhov chaw nres nkoj IO
T0_Init(); // Pib lub sijhawm 0
T2_Init(); // Pib lub sijhawm 2
kuv_UART4_Init(115200);
uart_init(); // Pib qhov chaw nres nkoj serial
ws2812_writ_byte(8); // Pib lub teeb LED
RetMicSet();
ncua_ms(1000);
HloovPage(1);
thaum (1){
Uart_Handle_all();
OneMsHandle(); // 1Ms txhua zaus
TenMsHandle();
Nyeem_0xF00(); // Cov ntaub ntawv tsis siv neeg upload
}
}
tsis muaj dab tsi TenMsHandle(tsis muaj dab tsi)
{
yog tias (!TenmsFlag)
rov qab los;
TenmsFlag=0;
HunX_Law();
HunX_Qhuav();
HunX_WeiYing();
HunX_ShuaiJian();
HunX_Switch();
Echo_Wet();
Echo_Dry();
Echo_Qeeb();
Echo_ShuaiJian();
Echo_Switch();
}
tsis muaj dab tsi HunX_Wet(tsis muaj dab tsi)
{
u16 nyeem = 0;
readst=Read_Dgus(0x1200);
yog tias (nyeem == Mic_Set.MicWetNum)
rov qab los;
Mic_Set.MicWetNum=nyeem tiav;
MicEffectSend(Mic_Set.MicWetNum*10,
Teeb Mic.MicDryNum*10,
Mic_Teem.MicDiffNum*5,
Mic_Set.MicDecayNum*5,
Mic_Set.HunXiangSW);
(2) Cov kev teeb tsa ntsig txog reverb yog raws li nram no
#yog tias 1
intreverb_parameter_val(u16 ntub, u16 qhuav, u8 diffusion, u8 decayfactor,
u8 yog_bypass, u8 idmode)
{
#yog tias txhais (TCFG_MIC_EFFECT_ENABLE) && TCFG_MIC_EFFECT_ENABLE
#yog tias 1
u8 mode_id = idmode+5;
Plate_reverb_TOOL_SET *parmt = &eff_mode[mode_id - mic_mode_seq0].plate_reverb_parm; (TSI)
parmt->parm.ntub=ntub;
parmt->parm.qhuav=qhuav;
parmt->parm.diffusion=diffusion;
parmt->parm.decayfactor=decayfactor;
parmt->is_bypass=is_bypass;
phaj_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("qeeb %d, decayval %d, filt_enable %d, lpf_cutoff %d, wetgain %d, drygain %d\n",
parm->qeeb, parm->decayval,parm->filt_enable, parm->lpf_cutoff, parm->wetgain, parm->drygain);
#endif
#endif
rov qab 0;
}
(3) Cov kev ntsuas ntsig txog echo yog raws li nram no:
int Echo_parameter_val (u16 ntub, u16 qhuav, u16 qeeb, u16 lwj,
u16 yog_bypass, u16 idmode)
{
#ifdefined(TCFG_MIC_EFFECT_ENABLE) &&TCFG_MIC_EFFECT_ENABLE
#ifTCFG_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=ntub;
parmt->parm.rau caum=qhuav;
parmt->parm.qeeb=qeeb;
parmt->parm.decayval=decayfactor;
parmt->is_bypass=is_bypass;
echo_updata_parm(&parmt->parm, parmt->is_bypass);
#endif
rov qab 0;
#endif
}









