Files
player/Project/Src/Drive/Source/delay.c.tmp

52 lines
1.1 KiB
Plaintext
Raw Normal View History

2025-06-27 00:32:57 +08:00
/***
***************************************************************************
* @file delay.c
* @version V1.0.0
2025-06-27 00:32:57 +08:00
* @brief delay接口相关函数
***************************************************************************
* @description
*
* SysTick定时器配置为1ms中断实现毫秒延时
*
2025-06-27 00:32:57 +08:00
***************************************************************************
***/
#include "delay.h"
static __IO uint32_t TimingDelay; //计数变量
2025-06-27 00:32:57 +08:00
// 函数:延时初始化
// 说明:配置 SysTick 为1ms中断并启动定时器
//
void Delay_Init(void)
{
SysTick_Config(SystemCoreClock / 1000); //配置SysTick时钟为1ms中断
}
// 函数:计时函数
// 说明:在 SysTick 中断服务函数里被调用
//
void OS_CPU_SysTickHandler(void)
{
if (TimingDelay != 0)
{
2025-06-27 00:32:57 +08:00
TimingDelay--;
}
}
// 函数:毫秒延时
// 参数nTime - 延时时间单位ms
// 说明每次调用都会重新给TimingDelay赋值实现 n 毫秒的延时,最大延时 4294967295 ms。
2025-06-27 00:32:57 +08:00
//
void Delay_ms(uint32_t nTime)
{
2025-06-27 00:32:57 +08:00
TimingDelay = nTime;
while(TimingDelay != 0);
}