Contiki Etimer 模块】的更多相关文章

一.Etimer概述 Etimer提供产生时间事件(timed event)的机制,当设定好的timer到期时,将会给设定etimer的process发送一个PROCESS_EVENT_TIMER 事件. Etimer模块调用clock_time获得当前系统的时间. The Contiki etimer library provides a timer mechanism that generate timed events. An event timer will post the event…
1.前言     contiki是一款小型开源,易于移植的多任务操作系统,专门为无线传感网设计,适合内存受限制的网络系统.国内的研究和应用还处于初级阶段,甚至还不知道这个contiki如何发音,也没有那么响亮的中文名称.如果还没有中文名称的话,就干脆叫它“康提基”(来自wifi百科).     平台说明     硬件平台:CC2530         软件平台:IAR EW8051     contiki的时间管理非常有特色,有多种定时器,例如timer,stimer,ctimer,etimer…
一.functions for handling system time clock_time_t clock_time(void);//return the current system time in clock ticks unsigned long clock_seconds(void);//return the system time in seconds void clock_set_seconds(unsigned long ec);//set the value of the p…
一.rtimer概述 The Contiki rtimer library provides scheduling and execution of real-time tasks (with predictable execution times) 数据结构: struct rtimer { rtimer_clock_t time; rtimer_callback_t func; void *ptr; }; typedef void (* rtimer_callback_t)(struct r…
Ctimer 提供和Etimer类似的功能,只是Ctimer是在一段时间后调用回调函数,没有和特定进程相关联. 而Etimer是在一段时间后发送PROCESS_EVENT_TIMER事件给特定的进程. 一.Ctimer数据结构 struct ctimer { struct ctimer *next;//使用LIST时,要求第一个一定是指向本类型的指针 struct etimer etimer;//etimer作为底层通知 struct process *p;//对应的process void (…
鉴于自己英语水平不高,在这里,将上一篇关于contiki 的timer的文章翻译为中文,让自己在学习的时候,更方便点.文中有许多不是很通顺的地方,将就吧. Timers Contiki系统提供了一套时钟库用于应用程序和系统本身.时钟库包含了检查时间超出.将系统从低功耗模式唤醒到预定时间,以及实时任务安排等功能.时钟也用于应用程序,让系统和其他一起工作,或者在恢复执行前进入低功耗模式一段时间. The Contiki Timer Modules Contiki有一个时钟模块和一套时钟:timer,…
Contiki有一个clock模块和一系列timer模块:timer,stimer,ctimer,etimer,和rtimer. 一.clock模块 clock模块提供一些处理系统时间的函数,还有一些用来阻塞CPU的函数. timer模块的实现以clock模块为基础. 二.timer和stimer模块 timer和stimer提供最简单的形式来判断一段时间是否到期. timer使用clock tick来判断. stimer使用秒来判断,可以判断更长的时间间隔. timer和stimer可以使用在…
这幅图片是对前面  <<contiki学习笔记之九>>  的一个补充说明. 简单的玩玩etimer <contiki学习笔记之九> 或许,自己正在掀开contiki process最后的一层面纱: 或许,还有一段路要走: 或许,已经掀开... --------------- 一切,都只是process:只有有了process,才会轮到etimer_process  发言,除非,抛却一切机制,裸机实现etimer... process,是什么? 一个链表,还是单向的,仅此…
好吧,我承认etimer有点小复杂,主要是它似乎和contiki的process搅在一起,到处都在call_process.那就先搜搜contiki下的etimer的example看看,然后再试着写一个demo玩玩. 在写demo之前,先说说自己是怎么找到etimer 的example的文件的. 在core/sys/etimer.h 文件中,在描述etimer的数据结构的时候,作者显示的指出,如果要使用etimer,就必须先使用 etimer_set()这个函数进行一些工作,如图: 是的,数据结…
一.Timer API struct timer { clock_time_t start; clock_time_t interval; }; CCIF void timer_set(struct timer *t, clock_time_t interval); void timer_reset(struct timer *t); void timer_restart(struct timer *t); CCIF int timer_expired(struct timer *t); clo…