Cortex-M0 包含一个集成的系统定时器 — SysTick。它提供一种简单的,24位写清零、递减、自装载同时具有可灵活控制机制的计数器。
该计数器可用作实时系统(RTOS) 的滴答定时器或一个简单的计数器。
当系统定时器使能后,将从 SysTick 的当前值寄存器 (SYST_CVR) 的值向下计数到0,并在下一个时钟周期,重新加载在 SysTick 重新加载值寄存器 (SYST_RVR) 的值,然后随接下来的时钟递减。
当计数器减到0时,标志位COUNTFLAG置位,读 COUNTFLAG 位使其清零。
复位后,SYST_CVR 的值未知。
在使能前,软件应该写该寄存器使其清零。
这样确保定时器在使能后以SYST_RVR中的值计数,而非任意值。
若SYST_RVR是0 ,在重新加载这个值后,定时器将保持当前值0,这种机制可以用来在不使用系统定时器的使能位的情形下禁用系统定时器。
|