添加一些关于midi播放的项目

This commit is contained in:
terryLP
2025-03-24 14:30:56 +08:00
parent e31eb22077
commit 498b4ef13b
699 changed files with 186162 additions and 1 deletions
@@ -0,0 +1,63 @@
/***********************************************************************!
* 技术讨论:QQ群 123763203
* 官网 www.navota.com
*
* @file delay.c
* @brief systic函数库
* @author Navota
* @date 2018-3-1
************************************************************************/
#include "delay.h"
//延时驱动C 文件
/***********************************************************************************************
功能:初始化延时模块
形参:0
返回:0
详解:此函数用于初始化延时模块,使用函数时必须调用。否则会造成延时函数出错
************************************************************************************************/
void DelayInit(void)
{
SysTick->CTRL = 0;//选取systick的时钟为内核时钟/16
}
/***********************************************************************************************
功能:US级延时函数
形参:US 需要延时多少US
返回:0
详解:裸机下的延时US
************************************************************************************************/
void DelayUs(uint32_t us)
{
uint32_t temp;
SysTick->LOAD = (us*BUS_CLK_HZ/10000)/(1600); //时间加载
SysTick->VAL = 0x00; //清空计数器
SysTick->CTRL |= 0x01 ; //开始倒数
do
{
temp = SysTick->CTRL;
}while(temp & 0x01 && !(temp & (1<<16))); //等待时间到达
SysTick->CTRL &= ~0x01; //关闭计数器
}
/***********************************************************************************************
功能:MS级延时函数
形参:MS需要延时多少MS
返回:0
详解:裸机下的延时MS
************************************************************************************************/
void DelayMs(uint32_t ms)
{
uint32_t temp;
uint16_t i;
for(i = 0;i < ms;i++) //延时 MS
{
SysTick->LOAD = (BUS_CLK_HZ/1000)/16; //时间加载1ms
SysTick->VAL = 0x00; //清空计数器
SysTick->CTRL |= 0x01; //开始倒数
do
{
temp = SysTick->CTRL;
}while(temp & 0x01 && !(temp & (1<<16))); //等待时间到达
SysTick->CTRL &= ~0x01; //关闭计数器
}
}