本节课介绍了T5L C51 音频播放。
本视频教学由迪文开发者论坛用户 ID 熊家余 分享提供。
教学视频:https://www.yuanzige.com/course/detail/80041?section_id=81160
原视频链接:https://www.bilibili.com/video/BV19K411W7um
本节课课程内容介绍如下。
1.介绍在T5L芯片中集成了一个音频管理模块,利用此音频模块我们可以实现播放开机音乐,按钮点击音效等功能,不过我们要想看到正确的效果,硬件上和软件上都得做相应的小修改,然后音频控制方式这里也可以分为如下俩种: (1)通过DGUS Tool软件来设置”触控控件”的”语音ID”属性,这种控制方式简单,不需要写任何C51代码。
(2)通过C51代码来动态播放音频,这种方式灵活度高,自定制能力强。
在实际的应用项目当中,对于上面的俩种控制方式,我们一般都会结合交叉使用.因为每一种控制方式都有其优点. 接下来,我们来看一下如何进行硬件和软件上的修改,才能得到正确的播放效果 (1)硬件修改,因为我们的EK043开发板上默认是接了一个蜂鸣器来作为提示音的,如果我们想要用音频来作为提示音的话,那么我们得用喇叭来替换掉蜂鸣器,比如用一个8Ω0.5w的小喇叭。 除了需要替换掉蜂鸣器外,我们原理图上也需要进行一个小修改
(2)软件修改,我们这个所谓的软件修改其实就是指修改.CFG配置文件,生成.wae音频压缩文件,以及C51端构建音频播放函数等三个操作.
a.修改.CFG配置文件 主要是将.CFG配置文件中的0x05地址处的bit6设置为1来选择音乐播放,然后将0x07地址处设置为0x10。
b.生成.wae音频压缩文件
c.C51代码构建sys_play_audio音频播放函数,主要是访问”系统变量接口”.
2.例程设计2.1功能简介我们在”0启动界面”上放置三个”按键返回控件”,点击之后,分别用来播放开机音效, 成功音效, 错误音效,其中播放开机音效是通过DGUS Tool软件设置”语音ID”属性的方式来实现的,而成功音效, 错误音效是通过C51代码的方式来实现的.
2.2 GUI界面设计 主要是用到三个”按键返回控件”
2.3 C51代码设计我们可以直接利用在第14章节中已经创建好的C51项目工程模板,然后在此基础上进行修改.
(1) sys.c文件中的播放音频函数如下: //播放音频 //wav_id:是指.wav音频文件在wae文件中的id编号(其实就是.wav音频文件名称前面的数字) //volume:播放的音量大小,范围为:[1,64] void sys_play_audio(u8 wav_id,u8 volume) { #define AUDIO_ADDR 0xA0
u8 audio_cmd[4]; audio_cmd[0] = wav_id; audio_cmd[1] = 0x01;//播放段数,固定为0x01 audio_cmd[2] = volume;//播放音量 audio_cmd[3] = 0x00;//播放状态为只读,固定为0x00 sys_write_vp(AUDIO_ADDR,audio_cmd,2); }
(2) start_win.c文件的代码如下: #include "start_win.h"
#define AUDIO_POWER_ON 1 //开机音效 #define AUDIO_ERROR 2 //错误音效 #define AUDIO_OK 3 //成功音效
void start_win_btn_click_handler(u16 btn_val) {
switch(btn_val) { case 2://点击了"成功音效"按钮 sys_play_audio(AUDIO_OK,AUDIO_MAX_VOLUME); break; case 3://点击了"错误音效"按钮 sys_play_audio(AUDIO_ERROR,AUDIO_MAX_VOLUME); break; default: break; } }
|