硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4322|回复: 3
收起左侧

[有问必答] beep()能播放一段旋律吗?

[复制链接]

38

主题

82

回帖

196

积分

初级会员

积分
196
发表于 2016-1-14 14:37:54 | 显示全部楼层 |阅读模式
按照armfly的写法, Beep是采用修改全局变量+定时线程去轮询变量播音的, 但是如果要播一段小曲子, 不是简单ton ton ton, 有办法吗?

用操作系统就比较好解决这个问题, 我只需要为声音开一个线程, 需要播放就触发一下, 曲子的旋律采用一个数组保存然后挨个元素播放.
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116767
QQ
发表于 2016-1-14 16:26:12 | 显示全部楼层
是不是有个DMA PWM方式,看看是否有搞头。通过DMA给PWM送数据。
回复

使用道具 举报

38

主题

82

回帖

196

积分

初级会员

积分
196
 楼主| 发表于 2016-1-15 10:36:09 | 显示全部楼层

回 eric2013 的帖子

eric2013:是不是有个DMA PWM方式,看看是否有搞头。通过DMA给PWM送数据。 (2016-01-14 16:26) 
有这个模式.
我弄一个二维数组, 存放声音频率和维持的时钟数(ms), 还是用armfly的写法, 有个定时线程去解析这个数组并改变PWM, 应该就可以放一段音乐了. 主要就是二维数组可能放旋律会方便点吧, 其他跟你的代码差不多.
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116767
QQ
发表于 2016-1-15 20:40:25 | 显示全部楼层

回 yip_1991 的帖子

yip_1991:有这个模式.
我弄一个二维数组, 存放声音频率和维持的时钟数(ms), 还是用armfly的写法, 有个定时线程去解析这个数组并改变PWM, 应该就可以放一段音乐了. 主要就是二维数组可能放旋律会方便点吧, 其他跟你的代码差不多. (2016-01-15 10:36) 
[s:151]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-7-5 21:33 , Processed in 0.207823 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表