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