嵌入式linux蜂鸣器播放音乐,【原创】嵌入式开发实战:新唐 M451 蜂鸣器播放音乐...

#include "stdio.h"

#include "M451Series.h"

#include "NuEdu-Basic01.h"

#define PLL_CLOCK       72000000

typedef struct Tonedata{

short note;//音符:0 表示 不发音。1 2 3 4 5 6 7

short tone;//音调:1 低音,2 中

short length;//长度//1表示四分之一拍,8表2拍

}Tone,*PTone;

typedef struct SongData

{

unsigned int length;//歌曲长度

PTone pData;

} Song,*PSong;

unsigned int yinfu[22]={0,

262,294,330,349,392,315,494,

523,578,659,698,784,880,988,//中音

1046,1175,1318, 1397,1568,1780,1976

};

Tone songdata1[37]={ {6,2,8},{5,2,2},{3,2,4},{5,2,4},{1,3,4},{6,2,2},{5,2,2},{6,2,4},{0,0,4},

{3,2,4},{5,2,2},{6,2,2},{5,2,4},{3,2,2},{2,2,2},{1,2,2},{6,1,2},{5,2,2},

{3,2,2},{2,2,4},{0,0,4},{2,2,8},{3,2,2},{5,2,4},{5,2,2},{6,2,2},{3,2,8},

{2,2,2},{1,2,4},{5,2,8},{3,2,2},{2,2,2},{1,2,2},{6,1,2},{1,2,2},{5,1,4},

{0,0,4}};//《世上只有妈妈好》

Tone songdata2[65]=   { {5,2,4},{3,2,2},{1,3,8},{6,2,4},{1,3,4},{5,2,8},{0,0,2},{5,2,4},

{1,2,2},{2,2,2},{3,2,4},{2,2,2},{1,2,2},{2,2,8},{0,0,8},{5,2,4},{3,2,2},

{5,2,2},{2,2,4},{1,3,6},{7,2,2},{6,2,4},{1,3,4},{5,2,8},{5,2,4},{2,2,2},

{3,2,2},{4,2,6},{7,1,2},{1,2,8},{0,0,8},{6,2,4},{1,3,4},{0,0,1},{1,3,8},

{7,2,4},{6,2,2},{7,2,2},{1,3,8},{6,2,2},{7,2,2},{1,3,2},{6,2,2},{6,2,2},

{5,2,2},{2,2,2},{1,2,2},{2,2,8},{0,0,8},{5,2,4},{3,2,2},{5,2,2},{1,3,8},

{7,2,2},{6,2,4},{1,3,4},{5,2,8},{0,0,1},{5,2,4},{2,2,2},{3,2,2},{4,2,8},

{7,1,2},{1,2,12},{0,0,4}};//《送别》-李叔同

int playspeed=1;

int playmode=1;//播放模式:1 单曲循环,2 全部循环,3 停止,4 暂停

int currentsong=0;//当前歌曲

Song songs[2];//世上只有妈妈?

int numOfsongs=2;

void PlaySong(PSong pSong)

{

int temp=playmode;

int length=pSong->length;

int oldmode=playmode;

PTone pTone=pSong->pData;

int index=0,i,j;

for(i=0;i

{

if(pTone[i].note==0)

{

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值