精品国产Av无码久久久蜜臀-免费看a级淫秽真实动作衫视频-人妻无码一区二区三区免费视频-奶好大 好长 好紧免费视频

logo

【開源獲獎(jiǎng)案例】基于T5L智能屏的EQ均衡效果器

            ——來自迪文開發(fā)者論壇

本期為大家推送迪文開發(fā)者論壇獲獎(jiǎng)開源案例——基于T5L智能屏的EQ均衡效果器。工程師采用800×480分辨率屏幕,通過T5L串口4與均衡效果器開發(fā)板通訊,調(diào)節(jié)中心頻率、增益、Q/S值等核心參數(shù),實(shí)現(xiàn)高品質(zhì)的音樂播放效果,同時(shí)還支持U盤和手機(jī)藍(lán)牙播放音樂。


【演示視頻】

完整開發(fā)資料含迪文屏DGUS工程資料與C51代碼,獲取方式

1、前往迪文開發(fā)者論壇獲取:http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=11959

2、微信公眾號(hào)中回復(fù)“EQ均衡效果器”獲取。

【UI素材展示】

0 12 3


【GUI工程設(shè)計(jì)】

4

C51工程設(shè)計(jì)


(1)迪文智能屏主要代碼如下:

        INIT_CPU();  //系統(tǒng)初始化

        PORT_Init();//IO口初始化

        T0_Init();//定時(shí)器0初始化

//  T1_Init();

        T2_Init();//定時(shí)器2初始化

//  WDT_ON();           //打開開門狗 喂狗在定時(shí)器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)均衡效果器開發(fā)板主要代碼如下:

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;