OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...

查看: 967|回复: 3

简单和弦效果的波表旋律发生器(51,STM8,AVR,STM32)

[复制链接]

  离线 

5

主题

14

帖子

0

精华

高级会员

Rank: 4

积分
833
金钱
833
注册时间
2016-9-12
在线时间
96 小时
发表于 2017-3-5 13:49:08 | 显示全部楼层 |阅读模式
正点原子公众号
本帖最后由 shanan 于 2017-3-5 13:48 编辑

代码来源于知名的elm-chan.org,在国内已经有前辈把它移植到ATmega8上,被我偶然看到,它的效果深深吸引了我。
因为权限问题,我就不发链接了。


具体原理,请自行搜索相关帖子研究,关键词:有简单和_弦效果的音乐发生器。
我把代码整理一下,关键的中断程序的汇编代码都改为C语言了,便于移植到其他平台。
代码运行在各种平台的效果如下,仅作参考:



编号芯片时钟IDE优化等级中断执行和弦数量
1IAP15W4K58S430MhzUV4Level 8
Favor speed
26us2
2ATMEGA128A16MHzIARLevel High
Speed
26us6
3STM8S103F3P16MHzIARLevel High
Speed
No size constraint
17us2
4STM32F103RCT624MHzUV5Level 0
Optimize for Time
22us6

中断执行测试方法是在进入中断时将某管脚置位,然后退出中断时将管脚复位,用逻辑分析仪对该管脚采样得出。和弦数量最大为6,必须保证32KHz执行一次中断,此时的和弦数量才是有效的。

评价:
1.最佳性价比:STM8S
理由:本次使用的开发板中,STM8S是最为廉价的。
我比较疑惑的是测试STM8S时,当和弦数量设置从2到3时,中断执行时间急剧增大,从17us增大到34us,无法播放,这个性能让人感到失望,或许是我有些设置不对。

2.最努力奋斗:STC15
理由:使用了接近工作极限的频率,再往上就得输入某人的电话号码了!!!
广告总是写着比以前的快多少,但从来不提MIPS,本次测试结果显示,革命尚未成功啊!

3.最突出表现:AVR
理由:舍我其谁。
因为原作是汇编,我阅读AVR的汇编后改写为C语言的,AVR的汇编指令编写的效率要比51高得多了,而且AVR丰富的寄存器真是极大的优势。

4.特邀表演嘉宾:STM32
STM32在这里表示毫无压力。

测试硬件:

625495695152378461.jpg

管脚:
STC15:PWM1-P1.0, PWM0-P1.1 接喇叭8欧姆0.5W,5V时需要串联2个33欧电阻。STM8S:PC3(TIM1-CH3) & PC4(TIM1-CH4) 接喇叭8欧姆0.5W,5V时需要串联2个33欧电阻。
AVR:OC1A-PB5, OC1B-PB6 接喇叭8欧姆0.5W,5V时需要串联2个33欧电阻。
STM32F103:PB6(TIM4_CH1) & PB7(TIM4_CH2) 接喇叭8欧姆0.5W,串联2个33欧电阻。
资源:
AVR录音.rar (1008.78 KB, 下载次数: 358)
回复

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2016-12-21
在线时间
33 小时
发表于 2017-3-5 19:28:11 | 显示全部楼层
赞,看看效果
回复 支持 反对

使用道具 举报

  离线 

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
323
金钱
323
注册时间
2012-2-24
在线时间
111 小时
发表于 2017-5-6 03:44:15 来自手机 | 显示全部楼层
楼主有心人哪!谢谢分亨!
回复 支持 反对

使用道具 举报

  离线 

3

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2017-6-29
在线时间
9 小时
发表于 2018-3-1 13:59:40 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则




关闭

必看:"原子哥”力荐上一条 /1 下一条

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-8-21 17:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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