1. 程式人生 > >004_軟體定時器

004_軟體定時器

軟體定時器API函式:紅色常用

函式名

作用

OSTmrCreate()

建立定時器並制定執行模式

OSTmrDel()

刪除定時器

OSTmrRemainGet()

獲取定時器的剩餘時間

OSTmrStart()

啟動定時器計數

OSTmrStateGet()

獲取當前定時器狀態

OSTmrStop()

停止計數器倒計時

 

(一)   將軟體定時器開啟

#define OS_CFG_TMR_EN                   1u   

(一)定義軟體定時器

OS_TMR     tmr1;        //定時器1
OS_TMR    tmr2;        //定時器2

(二)建立軟體定時器

    //建立定時器1
    OSTmrCreate((OS_TMR        *)&tmr1,        //定時器1
                (CPU_CHAR    *)"tmr1",        //
定時器名字 (OS_TICK )20, //20*10=200ms,第一次執行 (OS_TICK )100, //100*10=1000ms 第二次以後 (OS_OPT )OS_OPT_TMR_PERIODIC, //週期模式 (OS_TMR_CALLBACK_PTR)tmr1_callback,//定時器1回撥函式 (void *)0, //引數為0 (OS_ERR *)&err); //
返回的錯誤碼

(一)   當軟體定時器定時結束時候就會呼叫回撥函式

void tmr1_callback(void *p_tmr, void *p_arg);     //定時器1回撥函式
void tmr2_callback(void *p_tmr, void *p_arg);    //定時器2回撥函式
//定時器1的回撥函式
void tmr1_callback(void *p_tmr, void *p_arg)
{

}

(四)使用函式OSTmrStart開啟軟體定時器

/*哪個定時器   錯誤碼*/
OSTmrStart(&tmr1,&err);    //開啟定時器1

(五)使用函式OSTmrStop停止定時器

OSTmrStop(&tmr1,OS_OPT_TMR_NONE,0,&err);    //關閉定時器1