ucOS_III定时器的使用

例子:使用定时器实现按键长安后启动电机转动

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;
                                        }
                        }
         }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值