Contiki有一个clock模块和一系列timer模块:timerstimerctimeretimer,和rtimer

一、clock模块

clock模块提供一些处理系统时间的函数,还有一些用来阻塞CPU的函数。

timer模块的实现以clock模块为基础。

二、timer和stimer模块

timer和stimer提供最简单的形式来判断一段时间是否到期。

timer使用clock tick来判断。

stimer使用秒来判断,可以判断更长的时间间隔。

timer和stimer可以使用在中断中

三、etimer模块

etimer用于在一段时间后向Contiki processes发送event

etimer可使Contiki processes在等待一段时间的同时,可以继续做其他的工作,或者进入低功耗模式。

四、ctimer模块

ctimer提供回调timer,可以在一段时间后调用回调函数。

向etimer模块一样,ctimer使系统在等待一段时间的同时,可以继续工作,或者进入低功耗模式。

因为ctimer是调用回调函数,这在一些没有和特定进程相关联的代码中特别有用,特别是协议的实现,Rimer协议栈使用callback timer来处理通信超时。

五、rtimer模块

rtimer用于处理实时任务。

The rtimer library pre-empt any running Contiki process in order to let the real-time tasks execute at the scheduled time. The real-time tasks are used in time critical code such as the X-MAC implementation where the radio needs to be turned on or off at scheduled times without delay.

参考资料:https://github.com/contiki-os/contiki/wiki/Timers#The_Contiki_Timer_Modules

Contiki-Timer 概述的更多相关文章

  1. Contiki Timer & Stimer 模块

    一.Timer API struct timer { clock_time_t start; clock_time_t interval; }; CCIF void timer_set(struct ...

  2. Contiki Process概述

    本文涉及到的Protothread机制知识,在http://www.cnblogs.com/songdechiu/p/5793717.html 一.进程类型 进程类型主要有协同式(cooperativ ...

  3. [置顶] STM32移植contiki进阶之三(中):timer 中文版

    鉴于自己英语水平不高,在这里,将上一篇关于contiki 的timer的文章翻译为中文,让自己在学习的时候,更方便点.文中有许多不是很通顺的地方,将就吧. Timers Contiki系统提供了一套时 ...

  4. 使用Timer执行定时任务

    一.Timer概述 在Java开发中,会碰到一些需要定时或者延时执行某些任务的需求,这时,我们可以使用Java中的Timer类实现. 二.Timer介绍 Timer是一个定时器类,通过该类可以为指定的 ...

  5. Contiki Etimer 模块

    一.Etimer概述 Etimer提供产生时间事件(timed event)的机制,当设定好的timer到期时,将会给设定etimer的process发送一个PROCESS_EVENT_TIMER 事 ...

  6. Linux内核启动过程概述

    版权声明:本文原创,转载需声明作者ID和原文链接地址. Hi!大家好,我是CrazyCatJack.今天给大家带来的是Linux内核启动过程概述.希望能够帮助大家更好的理解Linux内核的启动,并且创 ...

  7. iOS-UI-UI控件概述

    以下列举一些在开发中可能用得上的UI控件: IBAction和IBOutlet,UIView 1 @interface ViewController : UIViewController 2 3 @p ...

  8. contiki在keil下的stm32平台移植

    参考博客: http://www.aiuxian.com/article/p-705047.html http://blog.csdn.net/u013232419/article/details/4 ...

  9. NSRunLoop 概述和原理

    NSRunLoop 概述和原理 1.什么是NSRunLoop? 我们会经常看到这样的代码: - (IBAction)start:(id)sender { pageStillLoading = YES; ...

  10. .NET System.Timers.Timer的原理和使用(开发定时执行程序)

    概述(来自MSDN) Timer 组件是基于服务器的计时器,它使您能够指定在应用程序中引发Elapsed 事件的周期性间隔.然后可以操控此事件以提供定期处理.例如,假设您有一台关键性服务器,必须每周7 ...

随机推荐

  1. Linux后台进程管理(转)

    fg.bg.jobs.&.ctrl + z命令一. &加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &,二.ctrl + z可以将一个正在前台执行的命令放到后台 ...

  2. 常见CSS两栏式布局

    代码下载:https://files.cnblogs.com/files/xiandedanteng/TwoColumnLayout.rar 效果展示: 代码: <!DOCTYPE html&g ...

  3. iOS开发中地图与定位

    不管是QQ还是微信的移动client都少不了定位功能,之前在微信demo中没有加入定位功能,今天就写个定位的小demo来了解一下定位和地图的东西. 地图和定位看上去是挺高大上一东西.其有使用方法比Ta ...

  4. UISegmentedControl的具体使用

    当用户输入不不过布尔值时.可使用分段控件(UISegmentedControl).分段控件提供一栏button(有时称为button栏),但只能激活当中一个button. 分段控件会导致用户在屏幕上看 ...

  5. GridView 获取列字段的几种途径

    GridView是ASP.NET中功能强大的数据显示控件,它的RowDataBound事件为我们提供了方便的控制行.列数据的途径. 要获取当前行的某个数据列,我在实践中总结有如下几种方法: 1. Ce ...

  6. AspectJ学习笔记2-Eclipse中AspectJ插件AJDT的正确安装方法

    接着之前一篇日志. 这个事情也挺无语的.简单记录一下. 在这里:http://www.eclipse.org/ajdt/ 能够下载最新的Eclipse Plugin.下载解压之后,一般来说.直接把解压 ...

  7. bit-map再显身手:test.txt中有42亿个无符号整数, 求不存在于test.txt中的最小无符号整数。限制: 可用内存为600MB.

    先看看这个题目:test.txt中有42亿个无符号整数, 求不存在于test.txt中的最小无符号整数. 限制: 可用内存为600MB. 又是大数据. 看到42亿, 有灵感没? 要知道, 2的32次方 ...

  8. python 和 mysql连接

    python 和 mysql连接 虫师教程:http://www.cnblogs.com/fnng/p/3565912.html 其他教程pymysql:http://www.cnblogs.com/ ...

  9. PX4学习之-uORB简单体验

    一.前言 最近项目使用到 CPU2 与 CPU0 之间的通信, 使用定时器传递消息到 CPU0 后, CPU0 需要将消息分发到不同的应用程序里面. PX4 里面使用的是 uORB 多线程/进程通信机 ...

  10. WikiCFP--A Wiki for Calls For Papers

    WikiCFP--A Wiki for Calls For Papers ---->www.wikicfp.com/cfp/