理解:
时钟节拍是软件层次的概念,硬件实现一定是定时器(systemTick)
用于实现精确的延时函数等。
(一)实现时钟节拍的配置
1.实现时钟节拍的时钟配置,位于我们的ucos config文件夹里面有一个os_cfg_app.h
所以配置为72Mhz/1000 在经过72分频就是1毫秒
#include "bsp_SysTick.h"
void SysTick_Configuration(void)
{
while(SysTick_Config(SystemCoreClock/1000u));//这里不需要这么细的时间 改成了1毫秒
}
2.配置中断服务函数
void SysTick_Handler(void)
{
OSIntEnter(); //根据API手册来的 进入(中断嵌套层数)
OSTimeTick(); //告知系统一个系统滴答定时已经产生 需要更新数据
OSIntExit(); //根据API手册来的 出去(告知已经完成了中断服务程序)
}
(二)使用时钟管理的延时函数
OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_HMSM_STRICT,&err);
参数说明:
小时
分钟
秒
毫秒
是否按照严格时间定时(严格:OS_OPT_TIME_HMSM_STRICT)一般都用这个 不严格要他有何用
如果发生错误输入的地址
最后就是记得用的时候包含os.h 不然看不到这些东西。