UCOSIII中OS_CFG_TICK_RATE_HZ即UCOS是UCOS的时钟节拍频率,值为1000u,即一个节拍1ms。要通过设置SysTick的LOAD值来达到1ms产生一次中断。
以ms为单位,设UCOS频率为每毫秒X个节拍,以HCLK_Div8作为SysTick的时钟源,设HCLK的频率为YMHZ/s换成毫秒为Y*10^3/ms,即SysTick频率为每毫秒Y*10^3个节拍。
SysTick运行LOAD个节拍产生一次中断即是UCOS的一个节拍,那么LOAD*X = Y*10^3,得到
LOAD = Y*10^3/X
以STM32F407为例,HCLK的频率为168MHZ,则 LOAD = (168/8 * 10^3)/X = 21 * 10^3