定时器
2016-07-22 16:48
387 查看
contiki操作系统常用的定时器有etimer,ctimer,timer等等。etimer是对timer的封装。
timer定时器主要包括一个timer结构体和5个方法。
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); //重置定时器,在原来的基础上再增加intervel这么长的时间
void timer_restart(struct timer *t); //重启定时器,即现在开始定时和以前一样长时间
CCIF int timer_expired(struct timer *t); //检查定时器是否到期,如果到期则返回1
clock_time_t timer_remaining(struct timer *t); //定时还剩多次时间
etimer定时器主要包括一个etimer定时器和11个方法再加一个宏和一个timelist,功能基本上和上面的timer定时器相同,不同的是加了指向etimer定时器的指针和指向绑定的process的指针。
struct etimer {
struct timer timer;
struct etimer *next;
struct process *p;
};
CCIF void etimer_set(struct etimer *et, clock_time_t interval);
CCIF void etimer_reset(struct etimer *et);
void etimer_restart(struct etimer *et);
void etimer_adjust(struct etimer *et, int td);
clock_time_t etimer_expiration_time(struct etimer *et);
clock_time_t etimer_start_time(struct etimer *et);
CCIF int etimer_expired(struct etimer *et);
void etimer_stop(struct etimer *et);
void etimer_request_poll(void);
int etimer_pending(void);
clock_time_t etimer_next_expiration_time(void);
PROCESS_NAME(etimer_process);
最后通过process_start(&etimer_process, NULL);开启定时器进程。
ctimer定时器主要包括一个ctimer结构体和几个方法
struct ctimer {
struct ctimer *next;
struct etimer etimer;
struct process *p;
void (*f)(void *);
void *ptr;
};
void ctimer_reset(struct ctimer *c);
void ctimer_restart(struct ctimer *c);
void ctimer_set(struct ctimer *c, clock_time_t t,void (*f)(void *), void *ptr); //时间到了执行f回调函数
void ctimer_stop(struct ctimer *c);
int ctimer_expired(struct ctimer *c);
void ctimer_init(void);
etimer和ctimer只能用一次
timer定时器主要包括一个timer结构体和5个方法。
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); //重置定时器,在原来的基础上再增加intervel这么长的时间
void timer_restart(struct timer *t); //重启定时器,即现在开始定时和以前一样长时间
CCIF int timer_expired(struct timer *t); //检查定时器是否到期,如果到期则返回1
clock_time_t timer_remaining(struct timer *t); //定时还剩多次时间
etimer定时器主要包括一个etimer定时器和11个方法再加一个宏和一个timelist,功能基本上和上面的timer定时器相同,不同的是加了指向etimer定时器的指针和指向绑定的process的指针。
struct etimer {
struct timer timer;
struct etimer *next;
struct process *p;
};
CCIF void etimer_set(struct etimer *et, clock_time_t interval);
CCIF void etimer_reset(struct etimer *et);
void etimer_restart(struct etimer *et);
void etimer_adjust(struct etimer *et, int td);
clock_time_t etimer_expiration_time(struct etimer *et);
clock_time_t etimer_start_time(struct etimer *et);
CCIF int etimer_expired(struct etimer *et);
void etimer_stop(struct etimer *et);
void etimer_request_poll(void);
int etimer_pending(void);
clock_time_t etimer_next_expiration_time(void);
PROCESS_NAME(etimer_process);
最后通过process_start(&etimer_process, NULL);开启定时器进程。
ctimer定时器主要包括一个ctimer结构体和几个方法
struct ctimer {
struct ctimer *next;
struct etimer etimer;
struct process *p;
void (*f)(void *);
void *ptr;
};
void ctimer_reset(struct ctimer *c);
void ctimer_restart(struct ctimer *c);
void ctimer_set(struct ctimer *c, clock_time_t t,void (*f)(void *), void *ptr); //时间到了执行f回调函数
void ctimer_stop(struct ctimer *c);
int ctimer_expired(struct ctimer *c);
void ctimer_init(void);
etimer和ctimer只能用一次
相关文章推荐
- iOS检测相机或者相册可用
- 聚信
- hdu 5742 It's All In The Mind(2016 Multi-University Training Contest 2——思维题)
- [java][leetcode 372]Super Pow
- Java IO
- Android中AlertDialog对话框禁止按 返回键、搜索键
- 指定进程启动时Windbg自动Attach
- 前端html如何绘制折线图、条形图、饼图
- fedora22改网卡名字
- CodeForces 698A Vacations (动态规划)
- spring定时器中 quartz addjob时间配置规则
- dwz官网
- vagrant入门教程--基本配置(3)
- 虚函数与纯虚函数的区别
- 进程间的通信方式
- Android自定义View 简单实现多图片选择控件
- Windbg 自动加载到启动的进程
- C++ json库jsoncpp 吐槽
- 浏览器缓存知识归纳
- [转载] FFMPEG视音频编解码零基础学习方法