SysTick定时器

SysTick是一个24位的倒计数定时器,当计到0时,将从RELOAD寄存器中自动重装载定时初值。只要不把它在SysTick控制及状态寄存器中的使能位清除,就永不停息。下边小结了SysTick的相关寄存器。

SysTick定时器

 

SysTick定时器

SysTick定时器

关于Systick定时器的定时间隔10ms在程序中如何计算得到?

利用systick定时器为递减计数器,设定初值并使能它后,它会每个1系统时钟周期计数器减计数到0时,SysTick计数器自动重装初值并继续计数,同时触发中断。

那么每次计数器减到0,经过的时间为:系统时钟周期 *计数器初值。我们使用100M作为系统时钟,那么每次计数器减1所用的时间是1/100M,计数器的初值如果是1000000,那么每次计数器减到0,时间经过(1/100M)*1000000= 0.01,即10ms。

以下程序展示了系统节拍定时器用作精确定时的初始化和使用方法。需要注意的是,系统节拍定时器的计数时钟来源于主时钟CCLK,这样其分辨率就更高。LPC1768在Fcclk=100MHz,装载到STRELOAD寄存器的值为0xF423F时,可产生精确的10ms定时。用户若需要产生的时间的精确定时,则可以向STRELOAD寄存器写入所想要设置的定时时间数值即可。

SysTick定时器