[Atmel] 在mbed环境下跑一下SAMD21:奏乐

[复制链接]
1013|0
 楼主| ddllxxrr 发表于 2016-3-14 11:40 | 显示全部楼层 |阅读模式
PWM可以放出音乐,我试了下千真万确,还挺好听。

原理是PWM产生频率一个数组而延时也就是节拍又是一个数组,两数组同时调。这样就出音乐了,而我只接一个无源的蜂鸣器.

以下是程序:
  1. #include "mbed.h"
  2. PwmOut PWM(PB16);
  3. float frequency[]={659,554,659,554,440,494,554,587,494,659,554,440};
  4. float beat[]={1,1,1,1,1,0.5,0.5,1,1,1,1,2};
  5. int main()
  6. {
  7.     while(1)
  8.     {
  9.        for(int i=0;i<=11;i++)
  10.        {
  11.         PWM.period(1/(2*frequency[i]));
  12.         PWM=0.5;
  13.         wait(0.4*beat[i]);
  14.         }   
  15.         
  16.     }
  17. }
以下是运行时的照片:




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2404

主题

7001

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部