⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 music.c

📁 Altera的NIOS2SOPC平台上的音乐播放的软件模板。 Quartus 2版本5.0 Nios2 IDE版本5.0 硬件平台自己根据软件构建
💻 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 + -