系统节拍定时器是 Cortex-M3 的主要组成部分。系统节拍定时器专为操作系统或其它的系统管理软件提供 10 毫秒的间隔中断。
因为系统节拍定时器是 Cortex-M3 的一部分,所以提供一个可用在基于 Cortex-M3 内核器件的标准定时器就很容易进行软件移植。
/************************************************************************
** 函数名:void SysTick_Init(uint8_t time)
** 函数功能: systick初始化
** 输入参数: time 定时时间(ms)
** 输出参数: 无
** 返回值:无
************************************************************************/
void SysTick_Init(uint8_t time){
SysTick_Config(SystemCoreClock/1000*time); //系统时钟/1000
}
/************************************************************************
** 函数名:void delay_us(uint32_t MS)
** 函数功能: 毫秒延时函数
** 输入参数: 毫秒
** 输出参数: 无
** 返回值:无
************************************************************************/
void Delay_ms(uint32_t MS){
unsigned long systickcnt;
systickcnt = SysTickCnt;
while ((SysTickCnt - systickcnt) < MS);
}
void SysTick_Handler(void)
{
SysTickCnt++;
SysTick->CTRL &= ~(1<<16);
}