|
|
文件名称:ds18b20.c
源码分析:
- //引用系统api
- #include "contiki.h"
- //引用ds18b20驱动文件
- #include "dev/ds18b20-arch.h"
- //引用输入输出库头文件
- #include <stdio.h> /* For printf() */
- //声明一个ds18b20_process进程
- /*---------------------------------------------------------------------------*/
- PROCESS(ds18b20_process, "ds18b20");
- //系统在初始化的时候自动启动这个进程
- AUTOSTART_PROCESSES(&ds18b20_process);
- //进程实现
- /*---------------------------------------------------------------------------*/
- PROCESS_THREAD(ds18b20_process, ev, data)
- {
- //进程开始
- PROCESS_BEGIN();
- //定义温度变量,保存温度值
- unsigned int temperature;
- //定义事件时间定时器
- static struct etimer et;
- //设置定时器事件
- etimer_set(&et, CLOCK_SECOND);
- //等待温度传感器初始化
- while(DS18B20_Init());
- //温度采集主循环
- while(1) {
- //等待时间事件
- PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
- //复位时间定时器
- etimer_reset(&et);
- //读取温度值
- temperature=DS18B20_Get_Temp();
- //串口输出温度值
- printf("temperature:%d\n",temperature);;
- }
- //进程结束
- PROCESS_END();
- /*测试*/
- }
- /*---------------------------------------------------------------------------*/
复制代码
|
|