在线时间776 小时
UID126526
注册时间2008-5-19
NXP金币0
TA的每日心情 | 奋斗 2023-9-17 19:57 |
---|
签到天数: 2310 天 [LV.Master]伴坛终老
金牌会员
- 积分
- 10481
- 最后登录
- 2023-9-17
|
本帖最后由 shaoziyang 于 2015-7-20 22:50 编辑
下面是用YL-KL26Z上的DAC播放声音的例子,可以通过电位器调整声音大小。声音文件来自SAM L21的Sound Player例子。
- #include "mbed.h"
- // frequency: 16 kHz
- #define FREQ 16000
- AnalogOut speaker(PTE30);
- AnalogIn getVolume(PTE20);
- Ticker tic;
- float Volume;
- /** Embedded waveform table of sound samples to output. */
- const uint16_t wav_samples[] = {
- #include "data.x"
- };
- uint16_t wav_p = 0;
- uint8_t k = 1;
- void tic_handler() {
- float dat;
- dat = wav_samples[wav_p]<<6;
- dat = dat * Volume;
- speaker.write_u16(dat);
- wav_p++;
- if(wav_p > sizeof(wav_samples)/2)
- {
- k = 1;
- tic.detach();
- wav_p = 0;
- }
- }
- int main() {
- while (true) {
- if(k)
- {
- wait(5.0);
- Volume = getVolume;
- // attach a function executed each 1/FREQ s
- tic.attach_us(tic_handler, 1000000.0/(float)FREQ);
- }
- }
- }
复制代码
SoundPlayer.zip
(266.94 KB, 下载次数: 31)
|
评分
-
查看全部评分
|