📄 music.c
字号:
/****************************************Copyright (c)**************************************************
** Guangzhou ZHIYUAN ELECTRONIC CO.,LTD.
** Research centre
** http://www.zyinside.com, http://www.zlgmcu.com
**
**---------------------------------------File Info-----------------------------------------------------
** File name: music.c
** Latest modified Date: 2005-09-30
** Latest Version: 1.0
** Descriptions: Play a song named "Da changjin"
** 用蜂鸣器播放大长今
**
********************************************************************************************************/
#include <stdio.h>
#include <string.h>
#include "music.h"
#include "altera_avalon_pwm_regs.h"
#include "altera_avalon_pwm.h"
#include "alt_types.h"
#include "system.h"
#include "priv/alt_busy_sleep.h"
/******************************************************************
* 与硬件相关的宏定义,用户根据实际情况修改
******************************************************************/
// PWM_PWM_BASE是用户添加并命名的外设基地址,在SYSTEM中定义,用户需要根据不同的命名来修改此处
#ifndef BEEP_PWM_BASE //这是BEEP_PWM核的基地址
#define BEEP_PWM_BASE 0xffffffff //user's definition here
#endif
#if BEEP_PWM_BASE == 0xffffffff
#error "No definition of BEEP_PWM core.\n"
#endif
// delay ms
void delay_ms(alt_32 ms)
{
while(ms--)
{
alt_busy_sleep(1000);//Delay 1ms
}
}
int main ()
{
static int i;
while(1)
{
for(i=0; i<SONG_SIZE; i++)
{
altera_avalon_pwm_disable(BEEP_PWM_BASE);
delay_ms(40); //Delay about 40ms
if(dachangjin[i][1]!=0)
{
altera_avalon_pwm_init(BEEP_PWM_BASE, dachangjin[i][0],
dachangjin[i][2]); //设置PWM频率实现不同音调、设置占空比实现不同音高
altera_avalon_pwm_enable(BEEP_PWM_BASE);
delay_ms(2*dachangjin[i][1]); //延时,控制播放速度
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -