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



[GUI ፕሮጀክት ንድፍ]

【C51 ፕሮጀክት】
(1) የስክሪኑ ዋና ፕሮግራም እንደሚከተለው ነው።
ባዶ ዋና(){
INIT_CPU();//ስርዓት ማስጀመር
PORT_Init();//አይኦ ወደብ አስጀምር
T0_Init();// ሰዓት ቆጣሪን አስጀምር 0
T2_Init();// የሰዓት ቆጣሪን አስጀምር 2
my_UART4_Init (115200);
uart_init();// ተከታታይ ወደብ አስጀምር
ws2812_writ_byte(8)፤// የ LED መብራት አስጀምር
RetMicSet ();
delay_ms(1000);
ለውጥ ገጽ (1);
ሳለ(1){
Uart_Handle_ሁሉንም();
OneMsHandle ();//1Ms በእያንዳንዱ ጊዜ
TenMsHandle ();
Read_0xF00();//መረጃ በራስ ሰር ሰቀላ
}
}
ባዶ TenMsHandle( ባዶ)
{
ከሆነ(!TenmsFlag)
መመለስ;
TenmsFlag=0;
HunX_Law ();
ሁንX_ደረቅ ();
HunX_WeiYing ();
HunX_ShuaiJian ();
HunX_Switch ();
Echo_Wet ();
Echo_Dry();
Echo_Delay();
Echo_ShuaiJian ();
Echo_Switch ();
}
ባዶ ሁንX_እርጥብ(ባዶ)
{
u16readst=0;
readst=Read_Dgus(0x1200);
ከሆነ (አንብብ==Mic_Set.MicWetNum)
መመለስ;
Mic_Set.MicWetNum=readst;
MicEffectSend(Mic_Set.MicWetNum*10፣
ሚክ_ሴት.ሚክድሪNum*10፣
ሚክ_ሴት.ሚክ ዲፍNum*5፣
Mic_Set.MicDecayNum*5፣
Mic_Set.HunXiangSW);
(2) የተገላቢጦሽ ተዛማጅ መለኪያዎች የሚከተሉት ናቸው
#ከሆነ 1
intreverb_parameter_val(u16 እርጥብ፣u16 ደረቅ፣u8 ስርጭት፣u8 መበስበስ፣
u8 is_bypass፣u8 idmode)
{
#ከተገለፀ(TCFG_MIC_EFFECT_Enable)&&TCFG_MIC_EFFECT_Enable
#ከሆነ 1
u8 mode_id = idmode+5;
Plate_reverb_TOOL_SET *parmt = &eff_mode [mode_id - mic_mode_seq0].plate_reverb_parm;
parmt->parm.wet = እርጥብ;
parmt->parm.dry=ደረቅ;
parmt-> parm.diffusion = ስርጭት;
parmt-> parm.decayfactor = decayfactor;
parmt->is_bypass=is_bypass;
plate_reverb_update_parm (&parmt-> parm, parmt-> is_bypass);
#ኤሊፍ 1
u8 mode_id = idmode+5;
// memcpy (& eff_mode [mode_id - mic_mode_seq0].echo_parm, & ፓኬት-> ውሂብ [1], መጠን (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);
#ኤሊፍ 0//PARM_DEBUG
ECHO_PARM_SET * parm = & parmt-> parm;
log_debug("delay%d፣ መበስበስ %d፣ filt_enable %d፣ lpf_cutoff %d፣ wetgain %d፣ drygain %d\n"፣
parm-> መዘግየት፣ parm-> መበስበስ፣parm->ማጣራት_የሚችል፣ parm-> lpf_cutoff፣ parm-> wetgain፣ parm->ድርቅ );
#መጨረሻ
#መጨረሻ
መመለስ 0;
}
(3) ከማሚቶ ጋር የተገናኙት መለኪያዎች የሚከተሉት ናቸው።
int Echo_parameter_val(u16 እርጥብ፣u16 ደረቅ፣u16 መዘግየት፣u16 መበስበስ፣
u16 ማለፊያ ነው፣u16 idmode)
{
#የተገለፀ(TCFG_MIC_ተፅዕኖ_የሚቻል) እና&TCFG_MIC_ተፅዕኖ_ይቻላል
#ከTCFG_MIC_ተፅዕኖ_SEL==MIC_ተፅዕኖ_አስተያየት_ኢኮ
u8 mode_id = idmode+5;
EF_ECHO_TOOL_SET *parmt = &eff_mode [mode_id - mic_mode_seq0].echo_parm;
parmt->parm.wetgain = እርጥብ;
parmt->parm.sixty=ደረቅ;
parmt->parm.delay = መዘግየት;
parmt->parm.decayval=decayfactor;
parmt->is_bypass=is_bypass;
echo_updata_parm (&parmt-> parm, parmt-> is_bypass);
#መጨረሻ
መመለስ 0;
#መጨረሻ
}


