时钟节拍可谓是 uC/OS 操作系统的心脏,它若不跳动,整个系统都将会瘫痪。时钟节拍就是操作系统的时基,操作系统要实现时间上的管理,必须依赖于时基。
  时钟节拍就是系统以固定的频率产生中断(时基中断),并在中断中处理与时间相关的事件,推动所有任务向前运行。时钟节拍需要依赖于硬件定时器,在 STM32 裸机程序中经常使用的 SysTick 时钟是 MCU的内核定时器,通常都使用该定时器产生操作系统的时钟节拍。
  用户需要先在“os_cfg_app.h”中设定时钟节拍的频率,该频率越高,操作系统检测事件就越频繁,可以增强任务的实时性,但太频繁也会增加操作系统内核的负担加重,所以用户需要权衡该频率的设置。秉火在这里采用默认的 1000 Hz(本书之后若无特别声明,均采用 1000 Hz),也就是时钟节拍的周期为 1 ms。 

   设置时钟节拍的频率 :

                                                            /* ------------------------ TICKS ----------------------- */
#define  OS_CFG_TICK_RATE_HZ            1000u               // 时钟节拍频率 (10 to 1000 Hz)                    
#define  OS_CFG_TICK_TASK_PRIO            10u               // 时钟节拍任务 OS_TickTask() 的优先级
#define  OS_CFG_TICK_TASK_STK_SIZE       128u               // 时钟节拍任务 OS_TickTask() 的栈空间大小
#define  OS_CFG_TICK_WHEEL_SIZE           17u               // OSCfg_TickWheel 数组的大小,推荐使用任务总数/4,且为质数
View Code

相关文章: