📄 tone.c
字号:
#include "tonecfg.h"
#include <csl_mcasp.h>
#include "evmdm642.h"
#include "evmdm642_aic23.h"
/* 每周期正弦波数据个数 */
#define SINE_TABLE_SIZE 48
/* 编码解码模块(AIC23)初始化参数 */
EVMDM642_AIC23_Config config = { \
0x0017, /* 0 DSK6713_AIC23_LEFTINVOL 左声道线输入音量 */ \
0x0017, /* 1 DSK6713_AIC23_RIGHTINVOL 右声道线输入音量 */\
0x01f9, /* 2 DSK6713_AIC23_LEFTHPVOL 左声道耳机音量 */ \
0x01f9, /* 3 DSK6713_AIC23_RIGHTHPVOL 右声道耳机音量 */ \
0x0011, /* 4 DSK6713_AIC23_ANAPATH 模拟通路控制 */ \
0x0000, /* 5 DSK6713_AIC23_DIGPATH 数字通路控制 */ \
0x0000, /* 6 DSK6713_AIC23_POWERDOWN 节能控制 */ \
0x0043, /* 7 DSK6713_AIC23_DIGIF 数字音频接口格式 */ \
0x0082, /* 8 DSK6713_AIC23_SAMPLERATE 采样率控制 */ \
0x0001 /* 9 DSK6713_AIC23_DIGACT 激活数字接口 */ \
};
/* 正弦波形数据,16位采样(0-65535) */
Uint16 sinetable[SINE_TABLE_SIZE] =
{
0x0000, 0x10b4, 0x2120, 0x30fb, 0x3fff, 0x4dea, 0x5a81, 0x658b,
0x6ed8, 0x763f, 0x7ba1, 0x7ee5, 0x7ffd, 0x7ee5, 0x7ba1, 0x76ef,
0x6ed8, 0x658b, 0x5a81, 0x4dea, 0x3fff, 0x30fb, 0x2120, 0x10b4,
0x0000, 0xef4c, 0xdee0, 0xcf06, 0xc002, 0xb216, 0xa57f, 0x9a75,
0x9128, 0x89c1, 0x845f, 0x811b, 0x8002, 0x811b, 0x845f, 0x89c1,
0x9128, 0x9a76, 0xa57f, 0xb216, 0xc002, 0xcf06, 0xdee0, 0xef4c
};
// main() - 主函数,初始化BSL,产生声音输出
void main()
{
EVMDM642_AIC23_CodecHandle hCodec; // 自定义设备句柄准备使用
Int16 msec, sample;
EVMDM642_init(); // 首先必须初始化BSL
// 初始化和启动AIC23模块,同时取得句柄
hCodec = EVMDM642_AIC23_openCodec(0, &config, EVMDM642_AIC23_OUTPUT);
// 产生5秒钟的1KHz波形输出
for ( msec = 0; msec < 5000; msec++ )
{
for ( sample = 0; sample < SINE_TABLE_SIZE; sample++ )
{
//利用句柄发送音频数据,32位数据的高16位将送左声道,低16位右声道
while (!EVMDM642_AIC23_write(hCodec, (sinetable[sample] << 16) | sinetable[sample]));
}
}
// 关闭AIC23模块、释放句柄
EVMDM642_AIC23_closeCodec(hCodec);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -