——来自迪文开发者论坛
本期为大家推送迪文开发者论坛获奖开源案例——基于T5L的EQ均衡效果器。工程师采用800×480分辨率屏幕,通过T5L串口4与均衡效果器开发板通讯,调节中心频率、增益、Q/S值等核心参数,实现高品质的音乐播放效果,同时还支持U盘和手机蓝牙播放音乐。
【演示视频】
完整开发资料含迪文屏DGUS工程资料与C51代码,获取方式:
1、前往迪文开发者论坛获取:http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=11959
2、微信公众号中回复“EQ均衡效果器”获取。
【UI素材展示】
【GUI工程设计】
【C51工程设计】
(1)迪文智能屏主要代码如下:
INIT_CPU(); //系统初始化
PORT_Init();//IO口初始化
T0_Init();//定时器0初始化
// T1_Init();
T2_Init();//定时器2初始化
// WDT_ON(); //打开开门狗 喂狗在定时器T2中
my_UART4_Init(115200);
uart_init();//串口初始化
ws2812_writ_byte(8); //LED初始化
resetEQValue();
updateEQPage();
delay_ms(1000);
ChangePage(1);
void TenMsHandle(void)
{
if(!TenmsFlag)
return;
TenmsFlag=0;
EQChangeSend();
// Led_CtrIO();
}
void EQChangeSend(void)
{
u8Read[10*3][2];
u8i=0;
u16fre1=0;
u8 Gain=0;
u8 QS=0;
memset(Read,0,sizeof(Read));
Read_Dgusii_Vp(0x1200,Read,30);
for(i=0;i<10;i++)
{
fre1=Read[i*3+0][0]<<8|Read[i*3+0][1];
Gain=Read[i*3+1][1];
QS=Read[i*3+2][1];
if(fre1!=EQv.Cfre||Gain!=EQv.Gain||QS!=EQv.QS)
{
EQSenddata(i,fre1,Gain,QS);
EQv.Cfre=fre1;
EQv.Gain=Gain;
EQv.QS=QS;
}
}
}
(2)均衡效果器开发板主要代码如下:
case 0x0b://更新EQ值
if(data[2]>9)
break;
structeq_seg_info *tar_seg1=&music_mode.eq_parm.seg[data[2]];
u32eq_name = 7;
u16fre1=data[3]<<8|data[4];
floatgain1=((data[5]&0x7f)*100+data[6]);
gain1/=100;
if(data[5]>=0X80)
gain1=-gain1;
floatQ1=(data[7]*100+data[8]);
Q1/=100;
tar_seg1->freq=fre1;
tar_seg1->gain=gain1;
tar_seg1->q=Q1;
cur_eq_set_update(eq_name, tar_seg1, get_eq_nsection(eq_name), 0);
break;
上一篇:无