ucos ii学习笔记4 软件定时器

ucos ii从V2.83版本以后加入了软件定时器,软件定时器的最快时钟节拍就等于ucos ii的系统时钟节拍,由一个单独的计数器OSTmrTime计时。功能代码在tmr.c里面,

深入的原理现在我也不懂,以后再补上,直接说函数和用法:

1.创建软件定时器函数OS_TMR *_OSTmrCreate(INT32U dly, INT32Uperiod, INT8Uopt, 

OS_TMR_CALLBACK callback, void *callback_arg, INT8U *pname, INT8U *perr);

其中dly表示第一次延时时间节拍数(软件定时器的节拍,不是系统时钟节拍);

period只有在周期定时模式时才有用,表示定时器的周期溢出时间;

opt为定时器的工作模式,有单次定时器和周期定时器两种,值分别为OS_TMR_OPT_ONE_SHOTOS_TMR_OPT_PERIODIC;

callback是定时器的回调函数,当软件定时器的定时时间到达时,会调用这个函数;

callback_arg是回调函数的参数;

pname是软件定时器的名字;

perr,错误信息。

需要注意的是,回调函数有固定的格式,不能自己随便写,格式如下:

void(*OS_TMR_CALLBACK)(void *ptmr, void *parg)。函数名可以自己写,ptmr一般设置类型为 OS_TMR*类型,parg是回调函数的参数,可以不用,但必须有这个参数。

2.开启软件定时器函数 BOOLEAN  OSTmrStart(OS_TMR *ptmr, INT8U *perr);

其中ptmr是软件定时器指针,perr是错误信息。

3.停止软件定时器函数 BOOLEAN  OSTmrStop (OS_TMR  *ptmr, INT8U  opt,  void   *callback_arg, 

INT8U   *perr);

其中ptmr是软件定时器指针,opt为停止选项,可以设置的 值和对应的意义为:

OS_TMR_OPT_NONE         直接停止,不做其他处理;

OS_TMR_OPT_ONE_SHOT停止,用初始化的参数执行一次回调函数;

OS_TMR_OPT_PERIODIC停止,用新的参数执行一次回调函数。

然后callback_arg就是新的参数。perr同样是错误信息。

接下来就是简单的例子了

OS_TMR   * tmr1;			//软件定时器
1OS_TMR   * tmr2;			//软件定时器2
......
tmr1=OSTmrCreate(10,10,OS_TMR_OPT_PERIODIC,(OS_TMR_CALLBACK)tmr1_callback,0,"tmr1",&err);//100ms执行一次
tmr2=OSTmrCreate(10,20,OS_TMR_OPT_PERIODIC,(OS_TMR_CALLBACK)tmr2_callback,0,"tmr2",&err);//200ms执行一次
OSTmrStart(tmr1,&err);//启动软件定时器1				 
OSTmrStart(tmr2,&err);//启动软件定时器2
......        
OSTmrStop(tmr2,OS_TMR_OPT_NONE,0,&err);	//关闭软件定时器2	
......
//软件定时器1的回调函数	
void tmr1_callback(OS_TMR *ptmr,void *p_arg) 
{
 }
//软件定时器2的回调函数				  	   
void tmr2_callback(OS_TMR *ptmr,void *p_arg) 
{	
}


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于uC/OS-II在STM32F4上的移植,以下是一个简单的教程: 步骤1:了解uC/OS-II 首先,您需要对uC/OS-II实时操作系统有一定的了解。阅读uC/OS-II的文档和参考手册,熟悉其核心概念和API。 步骤2:为STM32F4配置开发环境 确保您已经配置好了适合STM32F4的开发环境,包括编译器、调试器和开发板。您可以选择使用Keil MDK或者其他适合您的工具。 步骤3:创建uC/OS-II项目 在您的开发环境中创建一个新的uC/OS-II项目。这包括创建一个新的工程,并将uC/OS-II的源代码添加到项目中。 步骤4:配置STM32F4硬件 根据您的具体硬件配置,配置STM32F4的外设和引脚。确保将中断向量表正确地映射到uC/OS-II的中断处理程序。 步骤5:配置uC/OS-II内核 根据您的应用需求,配置uC/OS-II内核。这包括选择任务调度策略、配置任务优先级、堆栈大小等。 步骤6:编写应用程序 在uC/OS-II的基础上,编写您的应用程序。这包括创建任务、同步和通信机制,以及处理中断等。 步骤7:构建和调试 使用您的开发环境构建项目,并将生成的可执行文件下载到STM32F4开发板上进行调试。 请注意,以上仅提供了一个简单的概述,具体的步骤可能因您的具体情况而有所不同。在进行移植之前,建议您仔细阅读uC/OS-II的文档,并参考STM32F4的相关资料和示例代码。希望这个简要的教程能对您有所帮助!如有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值