API函数
//创建
OS_TMR *OSTmrCreate (INT32U dly,
INT32U period,
INT8U opt,
OS_TMR_CALLBACK callback,
void *callback_arg,
INT8U *pname,
INT8U *perr);
//删除
BOOLEAN OSTmrDel (OS_TMR *ptmr,
INT8U *perr);
//定时器名字
INT8U OSTmrNameGet (OS_TMR *ptmr,
INT8U **pdest,
INT8U *perr);
//溢出时间
INT32U OSTmrRemainGet (OS_TMR *ptmr,
INT8U *perr);
//定时器状态
INT8U OSTmrStateGet (OS_TMR *ptmr,
INT8U *perr);
//启动
BOOLEAN OSTmrStart (OS_TMR *ptmr,
INT8U *perr);
//关闭
BOOLEAN OSTmrStop (OS_TMR *ptmr,
INT8U opt,
void *callback_arg,
INT8U *perr);
//发送信号
INT8U OSTmrSignal (void);
应用举例
OS_TMR *tmr;
void start_task(void *pdata)
{
OS_ENTER_CRITICAL();
tmr = OSTmrCreate ((INT32U )0,
(INT32U )50, //50*100ms
(INT8U )OS_TMR_OPT_PERIODIC,
(OS_TMR_CALLBACK)tmr_callback,
(void *)0,
(INT8U *)"tmr",
(INT8U *)&err);
OS_EXIT_CRITICAL();
OSTmrStart(msg->tmr, &err);
}
void tmr_callback(void *ptmr, void *parg)
{
INT32U remain;
remain = OSTmrRemainGet(ptmr, &err);
if(remain <= 5)
{
printf("tmr_callback OSTmrRemainGet remain err: %d
", remain);
return;
}
}