三木社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 389|回复: 0
打印 上一主题 下一主题

ds18b20源码分析

[复制链接]

1657

主题

1684

帖子

5684

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5684
跳转到指定楼层
楼主
发表于 2017-6-12 14:46:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
文件名称:ds18b20.c
源码分析:
  1. //引用系统api
  2. #include "contiki.h"
  3. //引用ds18b20驱动文件
  4. #include "dev/ds18b20-arch.h"
  5. //引用输入输出库头文件
  6. #include <stdio.h> /* For printf() */
  7. //声明一个ds18b20_process进程
  8. /*---------------------------------------------------------------------------*/
  9. PROCESS(ds18b20_process, "ds18b20");
  10. //系统在初始化的时候自动启动这个进程
  11. AUTOSTART_PROCESSES(&ds18b20_process);
  12. //进程实现
  13. /*---------------------------------------------------------------------------*/
  14. PROCESS_THREAD(ds18b20_process, ev, data)
  15. {
  16.   //进程开始
  17.   PROCESS_BEGIN();
  18. //定义温度变量,保存温度值
  19.   unsigned int temperature;
  20.   //定义事件时间定时器
  21.   static struct etimer et;
  22.   //设置定时器事件
  23.   etimer_set(&et, CLOCK_SECOND);
  24.   //等待温度传感器初始化
  25.   while(DS18B20_Init());
  26.   //温度采集主循环
  27.   while(1) {
  28.     //等待时间事件
  29.     PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
  30.     //复位时间定时器
  31.     etimer_reset(&et);
  32.     //读取温度值
  33.     temperature=DS18B20_Get_Temp();
  34.     //串口输出温度值       
  35.     printf("temperature:%d\n",temperature);;
  36.   }
  37. //进程结束
  38.   PROCESS_END();
  39.   /*测试*/
  40. }
  41. /*---------------------------------------------------------------------------*/
复制代码


回复

使用道具 举报

Archiver|手机版|小黑屋|三木电子社区 ( 辽ICP备11000133号-4 )

辽公网安备 21021702000620号

GMT+8, 2026-3-13 00:07 , Processed in 0.022440 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表