CoOS下可以使用软件定时器,不过跟我们使用STM32下的时钟滴嗒不同,它可以通过函数指针来使用回调函数,可以降低代码的耦合度。此外,这个软件定时器还有调度的功能,就是说利用软件定时器,也能模拟操作系统的功能,同时,它自动给你按顺序执行多个回调函数,而不需要加锁。
具体效果如下图所示,而printf下的一个转义字符\n不起作用,两个\n才能换一次行,这是SecureCRT的问题,与CoOS无关。
1、CoCreateTmr(),创建软件定时器。
OS_TCID CoCreateTmr(U8 tmrType, U32 tmrCnt, U32 tmrReload, vFUNCPtr func);
tmrType,可以设为一次性定时TMR_TYPE_ONE_SHOT,或者周期性定时TMR_TYPE_PERIODIC。
tmrCnt,是第一次定时的时间,单位为10毫秒,刚好是默认的调度时间。
tmrReload,周期性定时的,重载的定时时间,对于一性次定时来说是没用的。
func,是函数指针。
2、CoStartTmr(),启动软件定时器。
StatusType CoStartTmr(OS_TCID tmrID);