【ክፍት ምንጭ】 በT5L ላይ የተመሠረተ የኮንሶል ማይክሮፎንን ለማደባለቅ የሪቨርብ እና የኢኮ መቆጣጠሪያ
--ከ DWIN የገንቢ መድረክ
ዛሬ ከDWIN የገንቢ መድረክ ሽልማት አሸናፊ የሆነ ክፍት ምንጭ ጉዳይ በማቅረብ ደስተኞች ነን፡ በT5L ቺፕ ላይ የተመሠረተ የኮንሶል ማይክሮፎንን ለማደባለቅ የሪቨርብ እና የኢኮ መቆጣጠሪያ። መሐንዲሳችን ከሪቨርብ ልማት ቦርድ ጋር በUART 4 የT5L በኩል ለመገናኘት 800x480 ጥራት ያለው ማሳያ ይጠቀማል፣ ይህም እንደ ሪቨርብ፣ ኢኮ፣ እርጥብ ድምፅ፣ ደረቅ ድምፅ፣ አኮስቲክ፣ መበስበስ እና መዘግየት ያሉ ወሳኝ የድምጽ መለኪያዎችን በትክክል ማስተካከል ያስችላል።
[የዩአይ ቁሳቁሶች]



[የGUI ፕሮጀክት ዲዛይን]

【የC51 ፕሮጀክት】
(1) የስክሪኑ ዋና ፕሮግራም እንደሚከተለው ነው፡
void main(){
INIT_CPU(); //የስርዓት ማስጀመሪያ
PORT_Init();//የ IO ወደብ አስጀምር
T0_Init();//ሰዓት ቆጣሪን ያስጀምሩ 0
T2_Init();//ሰዓት ቆጣሪን 2 አስጀምር
my_UART4_Init(115200);
uart_init();//የሲሪያል ፖርትን ያስጀምሩ
ws2812_writ_byte(8);//የኤልኢዲ መብራትን ያስጀምሩ
RetMicSet();
delay_ms(1000);
የለውጥ ገጽ(1)፤
እያለ(1){
Uart_Handle_all();
OneMsHandle();//1Ms በእያንዳንዱ ጊዜ
TenMsHandle();
Read_0xF00();//የውሂብ ራስ-ሰር ጭነት
}
}
void TenMsHandle(void)
{
if(!TenmsFlag)
መመለስ፤
የቴንምስ ፍላግ=0፤
HunX_Law();
HunX_Dry();
HunX_WeiYing ();
HunX_ShuaiJian ();
HunX_Switch();
ኢኮ_ዌት();
ኢኮ_ድራይ();
ኢኮ_ዴሌይ();
Echo_ShuaiJian ();
ኢኮ_ስዊች();
}
void HunX_Wet(void)
{
u16readst=0;
readst=Read_Dgus(0x1200);
if(readst==Mic_Set.MicWetNum)
መመለስ፤
Mic_Set.MicWetNum=readst;
ማይክኢፌክትሴንድ(ሚክ_ሴት.ሚክዌትኑም*10፣
Mic_Set.MicDryNum*10፣
Mic_Set.MicDiffNum*5፣
Mic_Set.MicDecayNum*5፣
Mic_Set.HunXiangSW);
(2) ከሪቨርብ ጋር የተያያዙ መለኪያዎች እንደሚከተለው ናቸው
#ከ1
intreverb_parameter_val(u16 እርጥብ፣u16 ደረቅ፣u8 ስርጭት፣u8 መበስበስ፣
u8 is_bypass,u8 idmode)
{
#ከተገለጸ (TCFG_MIC_EFFECTE_ENABLE)&& TCFG_MIC_EFFECTE_ENABLE
#ከ1
u8 ሁነታ_id = idmode+5;
Plate_reverb_TOOL_SET *parmt = &eff_mode[mode_id - mic_mode_seq0].plate_reverb_parm;
parmt->parm.wet=weat;
parmt->parm.dry=dry;
parmt->parm.diffusion=diffusion;
parmt->parm.decayfactor=decayfactor;
parmt->is_bypass=is_bypass;
plate_reverb_update_parm(&parmt->parm, parmt->is_bypass);
#ኤሊፍ 1
u8 ሁነታ_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->delay, parm->decayval,parm->filt_enable, parm->lpf_cutoff, parm->wetgain, parm->drygain);
#endif
#endif
ተመላሽ 0;
}
(3) ከኢኮ-ተዛማጅነት ጋር የተያያዙ መለኪያዎች እንደሚከተለው ናቸው፡
int Echo_parameter_val(u16 wet,u16 dry,u16 delay,u16 decayfactor,
u16 is_bypass,u16 idmode)
{
#ifdefined(TCFG_MIC_EFFCT_ENABLE) &&TCFG_MIC_EFFCT_ENABLE
#ifTCFG_MIC_EFFECT_SEL==MIC_EFFECT_REVERB_ECHO
u8 ሁነታ_id = idmode+5;
EF_ECHO_TOOL_SET*parmt = &eff_mode[mode_id - mic_mode_seq0].echo_parm;
parmt->parm.wetgain=wet;
parmt->parm.sixty=dry;
parmt->parm.delay=delay;
parmt->parm.decayval=decayfactor;
parmt->is_bypass=is_bypass;
echo_updata_parm(&parmt->parm, parmt->is_bypass);
#endif
ተመላሽ 0;
#endif
}







