例子:使用定时器实现按键长安后启动电机转动
OS_TMR START_TMR; //定义定时器变量
Void startTmrCallback(OS_TMR *p_tmr, void *p_arg){
//启动电机转动
}
//定时器只创建一次
OSTmrCreate(&START_TMR
“tmr name”
60,//延时时间
0,//周期调用
OS_OPT_TMR_ONE_SHOT,//单次
startTmrCallback,//定时时间到后的回调函数
0,//void * 类型,传递给回调函数的参数
&err);
Void _cbDialogHome(WM_MESSAGE* pMsg) //对话框回调函数
{
Switch(pMsg -> MsgId){
Case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg -> hWinSrc);
NCode = pMsg -> Data.V;
Switch(Id){
Case ID_BUTTON_0:
Switch(NCode){
Case WM_NOTIFICATION_CLICKED://按键按下
OSTmrStart(&START_TMR,&err);//启动定时器
Break;
Case WM_NOTIFICATION_RELEASED://按键松开
OSTMRStop(&START_TMR,OS_OPT_TMR_NONE,&err);//停止定时器
Break;
}
}
}
}