[MCU]

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

[复制链接]
2047|12
手机看帖
扫描二维码
随时随地手机跟帖
shanan|  楼主 | 2017-3-5 13:18 | 显示全部楼层 |阅读模式
本帖最后由 shanan 于 2017-3-5 13:16 编辑

代码来源于知名的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

资源:
国内前辈的资料:
**_487453.rar (1.04 MB)

相关帖子

armxu| | 2017-3-12 08:22 | 显示全部楼层
很好!下载研究

使用特权

评论回复
renxiaolin| | 2017-3-13 14:51 | 显示全部楼层
Very Good

使用特权

评论回复
shanan|  楼主 | 2017-3-30 20:29 | 显示全部楼层
整个工程打包,方便大家评估,这次是DAC和PWM双输出,PWM方式可以直接驱动喇叭,DAC方式可以外接功放获得更大功率。
PB6(TIM4_CH1) & PB7(TIM4_CH2) 接喇叭8欧姆0.5W,怕烧的话可以串联2个33欧电阻
DAC输出使用PA4(DAC1),需要功放来推动喇叭
打开DAC输出在extern_var.h #define USE_DAC 1 此时双输出
STM32_MUSIC_BOX20170330.rar (273.36 KB)

使用特权

评论回复
zhanzr21| | 2017-3-30 21:06 | 显示全部楼层
好! 劲!

使用特权

评论回复
four_sea| | 2017-3-30 23:03 | 显示全部楼层
不错,学习学习。

使用特权

评论回复
jrcsh| | 2017-3-31 01:38 | 显示全部楼层
看我的另类实现。。。。  .


使用特权

评论回复
jrcsh| | 2017-3-31 01:40 | 显示全部楼层
可以申请 STC 8A系列试试阿

使用特权

评论回复
潜龙出山| | 2017-3-31 13:42 | 显示全部楼层
楼主发的网站不错啊,另外楼主的头像是喷神james诶,我也经常看他的视频。

使用特权

评论回复
shanan|  楼主 | 2017-3-31 19:29 | 显示全部楼层
jrcsh 发表于 2017-3-31 01:38
看我的另类实现。。。。  .

我很努力听,但是听不出来是哪首歌……

使用特权

评论回复
shanan|  楼主 | 2017-3-31 19:30 | 显示全部楼层
潜龙出山 发表于 2017-3-31 13:42
楼主发的网站不错啊,另外楼主的头像是喷神james诶,我也经常看他的视频。 ...

你是对的。

使用特权

评论回复
dudu_q| | 2017-4-11 17:18 | 显示全部楼层
MARK

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

42

帖子

4

粉丝