一:配置CTRL寄存器,控制及其状态寄存器,
二:
配置LOAD寄存器,下一次的重装值
三:
配置VAL寄存器,当前数值寄存器
8 /* SystemFrequency / 1000 1ms 中断一次
9 * SystemFrequency / 100000 10us 中断一次
10 * SystemFrequency / 1000000 1us 中断一次
12 SysTick_Config(SystemCoreClock / 1000)
9 * SystemFrequency / 100000 10us 中断一次
10 * SystemFrequency / 1000000 1us 中断一次
12 SysTick_Config(SystemCoreClock / 1000)
仅需要调用SysTick_Config()即可。
滴答定时器的作用就起到了准确定时的作用,用在延时函数中,更加精准些。
eg:
*功能说明:SysTick中断调用函数
*******************************************************************************************/
void TimingDelay_Decrement(void)
{
if (TimingDelay != 0x00)
{
TimingDelay--;
}
}
*******************************************************************************************/
void TimingDelay_Decrement(void)
{
if (TimingDelay != 0x00)
{
TimingDelay--;
}
}
当
SystemFrequency / 1000 1ms
中断一次,中断函数1ms中断一次。
*功能说明:供外部调用的延时函数
*******************************************************************************************/
void Delay(__IO uint32_t nTime)
{
TimingDelay = nTime;
while(TimingDelay != 0);
}
*******************************************************************************************/
void Delay(__IO uint32_t nTime)
{
TimingDelay = nTime;
while(TimingDelay != 0);
}
此处的延时函数1ms改变一次