etimer
2024-10-07 19:01:50
Contiki包含一个时钟模型和5个定时器模型(timer, stimer, ctimer, etimer, and rtimer),先学习etimer吧。
etimer是一个结构体,(个人用event timer 来记),当设置的时间到的时候,就会给与之绑定的进程传递一个PROCESS_EVENT_TIMER事件,使该进程启动并继续执行。etimer结构体内容:
struct etimer
{
struct timer timer;
struct etimer *next;
struct process *p;
};
自己写的一个简单例子,让板子上唯一的一个LED每隔1s闪烁
struct etimer timeout; PROCESS(test_process, "Test Process");
AUTOSTART_PROCESSES(&test_process); PROCESS_THREAD(test_process, ev, data)
{ PROCESS_BEGIN(); etimer_set(&timeout,CLOCK_SECOND); //设置etimer溢出时间为1s while(){ PROCESS_WAIT_EVENT();//等待事件发生,线程会暂时停止在这行
if(ev == PROCESS_EVENT_TIMER){ //etimer溢出
leds_on(LEDS_YELLOW); //开灯
etimer_reset(&timeout); //重设定时器时间,也就是第一次设定时的1s
} PROCESS_WAIT_EVENT();//等待事件发生,线程会暂时停止在这行
if(ev == PROCESS_EVENT_TIMER){ //etimer溢出
leds_off(LEDS_YELLOW); //关灯
etimer_reset(&timeout);
} } PROCESS_END();
}
最新文章
- java获取两个时间的相隔时间,包括年、月、日、时、分、秒
- C#获得客户端IP
- MMO可见格子算法
- 【编程题目】n 个数字(0,1,…,n-1)形成一个圆圈,从数字 0 开始
- python+redis测试环境搭建
- RxJava结合Retrofit和Volley简单比较
- leetcode:Sort List(一个链表的归并排序)
- axis : java.lang.NoSuchMethodError
- stackoverflow上关于iOS的票数最多(最常见)的15个问题
- List 随机排序
- EasyUI - SearchBox 搜索框
- 在SQL Server 2008中调用.net,dll
- JDBC&;&;c3p0、事务、批处理、多线程 于一体的经典秘方QueryRunner
- c++ 开源库介绍和安装
- linux配置redis三种启动方式
- Python 函数介绍
- MACE(1)-----环境搭建
- 缓存Memcached 与 Redis 相同点差异点分析
- 利用Python爆破数据库备份文件
- springboot maven