Bootstrap

UCOSIII笔记2-常用API函数的使用

1、任务挂起函数OSTaskSuspend (&AppTaskTCB, & err )

可将对应任务挂起,使其进入阻塞状态,前一个参数为NULL时,将挂起调用此函数的任务本身

2、任务恢复函数OSTaskResume ( &AppTaskTCB, & err )

可将对应任务恢复,使其进入就绪状态

3、任务删除函数OSTaskDel( &AppTaskTCB, & err )

可将对应任务删除,前一个参数为NULL时,将挂起调用此函数的任务本身

4、任务延时函数OSTimeDly (OS_TICK dly, OS_OPT opt, OS_ERR  *p_err)

OS_TICK 延时节拍数

OS_OPT 延时的可选选项:

#define OS_OPT_TIME_DLY DEF_BIT_NONE (1)
#define OS_OPT_TIME_TIMEOUT ((OS_OPT)DEF_BIT_01) (2)
#define OS_OPT_TIME_MATCH ((OS_OPT)DEF_BIT_02) (3)
#define OS_OPT_TIME_PERIODIC ((OS_OPT)DEF_BIT_03)(4)

(1):OS_OPT_TIME_DLY:dly 为相对时间,就是从现在起延时多长
时间,到时钟节拍总计数 OSTickCtr = OSTickCtr 当前 + dly 时延时结束。

(2):OS_OPT_TIME_TIMEOUT:跟 OS_OPT_TIME_DLY 的作用情
况一样。

(3):OS_OPT_TIME_MATCH:dly 为绝对时间,就是从系统开始运行
(调用 OSStart())时到节拍总计数 OSTickCtr = dly 时延时结束。

(4):OS_OPT_TIME_PERIODIC:周期性延时,跟 OS_OPT_TIME_DLY
的作用差不多,如果是长时间延时,该选项更精准一些。

OS_ERR  存放返回错误代码

5、直观任务延时函数 OSTimeDlyHMSM (CPU_INT16U hours,  // 延时小时数
                                                                  CPU_INT16U minutes,  // 分钟数
                                                                  CPU_INT16U seconds,  // 秒数
                                                                  CPU_INT32U milli,  // 毫秒数
                                                                  OS_OPT opt, // 选项
它多了几个可选项:
#define OS_OPT_TIME_HMSM_STRICT ((OS_OPT)DEF_BIT_NONE)(5)
#define OS_OPT_TIME_HMSM_NON_STRICT ((OS_OPT)DEF_BIT_04)(6)
(5)OS_OPT_TIME_HMSM_STRICT
延时时间取值比较严格:
– 小时数 hours:(0-99)
– 分钟数 minutes:(0-59)
– 秒数 seconds:(0-59)
– 毫秒数 milliseconds:(0-999)
(6)OS_OPT_TIME_HMSM_NON_STRICT 
延时时间取值比较宽松。
– 小时数 hours:(0-999)
– 分钟数 minutes:(0-9999)
– 秒数 seconds:(0-65535)
– 毫秒数 milliseconds:(0-4294967295)

使用此函数需要在os_cfg.h中把OS_TIME_DLY_HMSM_EN置为1

 

;