Leave Your Message
የዜና ምድቦች
ተለይተው የቀረቡ ዜናዎች

【ክፍት ምንጭ】 በT5L ላይ የተመሠረተ የኮንሶል ማይክሮፎንን ለማደባለቅ የሪቨርብ እና የኢኮ መቆጣጠሪያ

2025-01-08

--ከ DWIN የገንቢ መድረክ

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

[የዩአይ ቁሳቁሶች]

10.png

11.png

13.png

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

12.png

የ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

}