UCOS iii 定时器

定时器

功能   定时结束后自动调用回调函数.使用回调函数完成任务.

创建:

 1 OS_TMR tmr1; //定时器1
 2
 3 void tmr1_callback(void *p_tmr, void *p_arg); //定时器1回调函数
 4
 5 OSTmrCreate((OS_TMR *)&tmr1, //定时器1
 6
 7 (CPU_CHAR *)"tmr1", //定时器名字
 8
 9             (OS_TICK  )20, //初始延时20*10=200ms
10
11             (OS_TICK  )100,           //周期延时100*10=1000ms
12
13             (OS_OPT  )OS_OPT_TMR_PERIODIC, //模式: 单次/周期
14
15             (OS_TMR_CALLBACK_PTR)tmr1_callback, //定时器1回调函数
16
17             (void     *)0, //参数为0
18
19             (OS_ERR     *)&err); //返回的错误码

开启定时器: OSTmrStart()

关闭定时器: OSTmrStop()

OPT模式

单次模式,从dly减到0停止并调用回调函数.

可以调用OSTmrStart()再次调用单次定时器

周期模式,计数完成后调用回调函数,并重置计数器循环开始下一轮定时.

dly为第一次延迟,period为之后周期延迟.

原文地址:https://www.cnblogs.com/RcBlog/p/10453021.html

时间: 2024-10-14 22:14:41

UCOS iii 定时器的相关文章

UCOS iii 钩子函数 中断服务函数 临界区 延时函数

钩子函数 功能: 扩展任务功能,被其他任务调用  算是消息机制 1.OSIdleTaskHook(),空闲任务调用这个函数,可以用来让CPU进入低功耗模式 2.OSInitHook(), 系统初始化函数OSInit()调用此函数. 3.OSStatTaskHook(),统计任务每秒中都会调用这个函数,此函数允许你向统计任务中添加自己的应用函数. 4.OSTaskCreateHook(),任务创建的钩子函数. 5.OSTaskDelHook(), 任务删除的钩子函数. 6.OSTaskReturn

ucos III中任务之间的数据通信和任务划分

1. 如果将关系密切(比如两个任务之间需要经常收发数据)的若干功能分别用不同的任务来实现,则需要进行大量的任务之间数据通信和同步通信,这系统来说是一个很大的负担.因此应该将关系密切的若干功能组合成一个任务,相关数据为各个功能共享,因此可以节省大量的资源. 2. 任务之间的切换需要占用CPU的资源,所以用时间片对任务进行切换,那么时间片的设定是一个取舍值,太小则切换频繁占用CPU太多资源,太大则任务反应速度太慢,所以一般根据经验设定为1ms. 原文地址:https://www.cnblogs.co

[Jmeter]jmeter之初体验(windows下的jmeter)

一.环境准备 1.安装JDK(传送门:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html选择jdk-8u101-windows-x64.exe),安装完成后,并配置正确环境变量: 2.下载jmeter安装包(传送门:http://mirrors.cnnic.cn/apache//jmeter/binaries/apache-jmeter-3.0.zip): 3.解压安装包即可: 4

STM32移植uCGUI+触摸屏显示,没有加入uCOS Ⅱ

实验板子 ——李想STM32开发板 开发工具—— keil uVision5.0 for MDK 本次终极任务为显示示波器的GUI界面,此文章只是简单总结移植uCGUI+触摸屏,之后会加入视窗管理器及uCOSⅡ. 下面说说移植步骤,会穿插一些个人简单的理解,为像我一样的新手提供方便. 步骤分为三大步: 一.移植uCGUI 二.显示汉字 三.移植触摸屏 一.移植uCGUI 1.建立工程模版. 个人会先建立一个工程模板,里边只包含系统的一些文件,主函数是while(1);的循环.每次项目用到就直接复

ucos实时操作系统学习笔记——操作系统在STM32的移植

使用ucos实时操作系统是在上学的时候,导师科研项目中.那时候就是网上找到操作系统移植教程以及应用教程依葫芦画瓢,功能实现也就罢了,没有很深入的去研究过这个东西.后来工作了,闲来无聊就研究了一下这个只有几千行代码的操作系统,也没所有的代码都看,只是看了其中部分内容.自己还自不量力的尝试着去写过简单的操作系统,最后写着写着就被带到了ucos的设计思路上了,后来干脆就“copy”代码了,虽说对操作系统内核的理解有很大的帮助,但是很是惭愧啊,智力不够,对操作系统内核的设计者更加仰慕,O(∩_∩)O哈哈

js-DOM ~ 04. BOM:浏览器对象模型window. 、定时器、在线用户、祝愿墙、BOM的内置方法内置对象

multiple. select列表多选 触发事件后调用有参数的函数要先创建一个函数,然后在函数内调用执行函数 Array.from(伪数组):伪数组变为真数组 indexOf():查询字符的索引 a)  indexOf('abcde') i.      indexOf('a')的索引是0 ii.      indexOf('abc')的索引是0,按照第一个字符的索引 iii.      indexOf('ac')的索引是-1,查找不到ac连续的字符 iv.      indexOf('f')的

RTX——第17章 定时器组

本章节为大家讲解 RTX 支持的定时器组,或者叫软件定时器,或者叫用户定时器均可.软件定时器的功能比较简单,也容易掌握. 被称为定时器组是因为用户可以创建多个定时器,创建的个数是可配置的. 定时器组介绍RTX 提供的定时器功能仅支持单次定时器,也就是用户创建了定时器并启动了定时器后,定时时间到将不再重新执行,此定时器会被删除掉并且就执行一次,下次使用要重新的创建,这个就是单次定时器的含义. 另外就是单次定时时间到后会调用定时器的回调函数,用户可以回调函数中加入需要执行的工程代码.使用此定时器组注

uCos的多任务实现

uCos的多任务实现 作为操作系统(OS),最基本的一项服务就是提供多线程,在实时操作系统uCos里,多线程被称为多任务(Task).多任务并不是CPU能真正同时运行多个程序,实际是靠CPU在多个任务之间转换切换实现的,CPU轮番的服务于一系列的任务,这样CPU在宏观上好像在同时执行多个任务,实际在微观上CPU绝对是“单任务”的.这里要注意区别多线程和多核,如果系统里是有多个CPU,则可以实现真正的多线程了. 按照上面的思路,多任务的实现,就是要实现CPU在不同的任务之间切换.按照uCos作者的

Vxworks、QNX、Xenomai、Intime、Sylixos、Ucos等实时操作系统的性能特点

VxWorks操作系统 VxWorks 操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统,是嵌入式开发环境的关键组成部分.其内核支持多任务调度(采用基于优先级抢占方式,同时支持同优先级任务间的分时间片调度).任务间的同步.进程间通信机制.中断处理.定时器和内存管理机制等,且提供了一个快速灵活的与 ANSIC 兼容的 I/O 系统,网络支持 对其它VxWorks系统和TCP/IP网络系统的"透明"访问.具有良好的持续发展能力.良好的可靠性.卓越的实时性和高