版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、无线传感器网络实验报告班级: _14104341_ 姓名:_代姝佳_ 学号:_1410400111_ 时间: 2017-3-22_ 教师: _陈飞云_ 成绩:_ 实验名称:CC2530定时器组件实验一、 实验目的 1. 了解CC2530芯片的定时器。2. 学会使用CC2530芯片的定时器。二、实验原理CC2530芯片包含四个定时器(Timer1、Timer2、Timer3、Timer4)和一个休眠定时器(Sleep Timer)和一个看门狗定时器。Timer1是16位的定时器,支持典型的定时/计数功能以及PWM功能,该定时器共有5个捕捉/
2、比较通道,每个通道使用一个单独的I/O引脚。Timer1的时钟频率是由系统时钟分频得到,首先由寄存器中的CLKON.TICKSPD分频;分频后的时钟频率可以被T1CTL.DIV分频,分频数为1、8、32、128。因此,在32MHz的系统频率下,Timer1的最小时钟频率为1953.125Hz,最大时钟频率为32MHz。Timer2主要用于为802.15.4标准中的CSMA/CA算法提供定时。该定时器即使在节点处于低功耗状态下仍然运行。Timer3和Timer4是两个8位的定时器,主要用于提供定时/计数功能。Sleep Timer 主要将节点从超低功耗工作状态唤醒。TinyOS系统下,定时器组件
3、一般为通用组件(generic components),通用组件类似于C+中的类,可以通过new来实例化最多255个定时器,类似于类实例化的对象。在Antc5下,定时器通用组件为TimerMilliC, 是Timer1提供的,此外,Timer1还提供了Alarm32khzC等组件。定时器向上层提供的接口分为Timer和Alarm两种,使用Timer接口需要指定定时器的精度,分为TMilli(毫秒)、T32kHz(32KHz)、TMicro(微秒)三种;使用Alarm接口既要指定定时精度,还要指定定时器的位宽。三、实验内容1. 将ATOS多模汇聚节点同电脑用烧录线连接好,打开其中任意WIFI节点
4、的电源开关,同时将WIFI节点对应的编程开关打开。2. 打开Cygwin开发环境。3. 在Cygwin界面中执行cd apps/Demos/Basic/ Timer,进入到定时器实验目录下。4. 在定时器代码目录下执行make antc5 install,进行编译和烧录。5. 实验现象为WIFI节点上蓝灯1秒闪一次,黄灯3秒闪一次。四、 实验过程1)详细的调试步骤1.将ATOS多模汇聚节点同电脑用烧录线连接好,打开其中任意WIFI节点的电源开关,同时将WIFI节点对应的编程开关打开。2.打开Cygwin开发环境。3.在Cygwin界面中执行cd apps/Demos/Basic/ Timer,
5、进入到定时器实验目录下。4.在定时器代码目录下执行make antc5 install,进行编译和烧录。5.实验现象为WIFI节点上蓝灯1秒闪一次,黄灯3秒闪一次。2)实验现象在定时器代码目录下执行make antc5 install,进行编译和烧录。界面显示成功烧录,WIFI节点上蓝灯1秒闪一次,黄灯3秒闪一次。3)必要的实验数据#define DBG_LEV 5module TimerLedMuses interface Boot;/* Timer为系统接口TMilli指明了定时器的精度为毫秒 */* as关键字为接口别名 */uses interface Timer<TMilli&
6、gt; as Timer1; uses interface Timer<TMilli> as Timer2;implementation/* 任务: 切换黄色LED灯 */task void ToggleLedGreen()LED_GREEN_TOGGLE;/* 启动事件处理函数,在TimerLed.nc已经关联到MainC.Boot接口系统启动后会调用此函数 */event void Boot.booted()/* 定时器1: 持续工作,每隔1s触发一次 */call Timer1.startPeriodic(1000);/* 定时器2: 持续工作,每隔3s触发一次*/call
7、Timer2.startPeriodic(3000);/* 定时器1的事件处理函数 */event void Timer1.fired()/* 事件处理中直接切换蓝色LED灯 */ADBG(5, "led red toggle./r/n");LED_RED_TOGGLE;/* 定时器2的事件处理函数 */event void Timer2.fired()ADBG(5, "led green toggle./r/n");post ToggleLedgreen();五、软件组成1. ATOS物联网教学实验平台实验箱2. 烧录线一根六、总结分析该实验完成了对C
8、C2530芯片的定时器的使用,通过LED来表现定时器的工作过程。在这个实验中用的定时器的精度为毫秒。这个实验中只使用了定时器的几个最重要的功能,还有好多接口都没有使用,比如timer.stop(),timer.isRunning()等,我们可以在课后自己动手尝试使用这些接口的功能。七、习题答案1. 通过定时器让黄灯闪烁三次后停止闪烁,然后让蓝灯一直处于亮状态。1.1实验现象如下:在定时器代码目录下执行make antc5 install,进行编译和烧录。界面显示成功烧录,WIFI节点上黄灯闪烁三次后停止闪烁,然后让蓝灯一直处于亮状态。1.2实验代码如下:#define DBG_LEV 5mod
9、ule TimerLedMuses interface Boot;/* Timer为系统接口TMilli指明了定时器的精度为毫秒 */uses interface Timer<TMilli> as Timer1; /* as关键字为接口别名 */uses interface Timer<TMilli> as Timer2;uses interface Timer<TMilli> as Timer3;/uses interface Timer<Tmilli> as Timer3;implementation/* 任务: 切换黄色LED灯 */tas
10、k void ToggleLedYellow()LED_YELLOW_TOGGLE;/* 启动事件处理函数,在TimerLed.nc已经关联到MainC.Boot接口系统启动后会调用此函数*/event void Boot.booted()/* 定时器1: 持续工作,每隔1s触发一次 */call Timer1.startPeriodic(1000);/* 定时器2: 持续工作,每隔3s触发一次*/call Timer2.startPeriodic(3000);call Timer3.startPeriodic(18000);/call Timer3.startPeriodic(18000);
11、/* 定时器1的事件处理函数 */event void Timer1.fired()/* 事件处理中直接切换蓝色LED灯 */ADBG(5, "led blue toggle.rn");LED_BLUE_TOGGLE;/* 定时器2的事件处理函数 */event void Timer2.fired()ADBG(5, "led yellow toggle.rn");post ToggleLedYellow();/*event void Timer3.fired() LED_YELLOW_OFF;LED_BULE_ON;call Time1_stop();c
12、all Time2_stop(); */event void Timer3.fired()LED_YELLOW_OFF;LED_BLUE_ON;call Timer2.stop();call Timer1.stop();/* file 定时器示例程序的实现模块,间隔点亮两个LED灯author NUAAdate */configuration TimerLedimplementationcomponents TimerLedM; /* TimerLed模块程序,用于实现具体代码 */components MainC; /* TinyOS2主模块,这里用于关联系统启动 */* TimerLed模
13、块程序的Boot接口与系统Boot接口关联 这样系统启动时会调用LedM的Boot接口?*/TimerLedM.Boot -> MainC.Boot;/*使用系统毫秒级Timer组件新建第一个定时器并且接口关联到TimerLedM处理模块*/components new TimerMilliC() as Timer1;TimerLedM.Timer1 -> Timer1;/*使用系统毫秒级Timer组件新建第二个定时器*/components new TimerMilliC() as Timer2;TimerLedM.Timer2 -> Timer2;components n
14、ew TimerMilliC() as Timer3;TimerLedM.Timer3 -> Timer3;2尝试用GeneralIO接口中的toggle( )命令编写代码控制蓝灯和黄灯闪烁,书上例子。#define DBG_LEV 5module TimerLedMuses interface Boot;/* Timer为系统接口TMilli指明了定时器的精度为毫秒 */uses interface Timer<TMilli> as Timer1; /* as关键字为接口别名 */uses interface Timer<TMilli> as Timer2;im
15、plementation/* 任务: 切换黄色LED灯 */ int i=0;task void ToggleLedYellow()LED_YELLOW_TOGGLE; i+; /* 启动事件处理函数,在TimerLed.nc已经关联到MainC.Boot接口系统启动后会调用此函数*/event void Boot.booted()/* 定时器1: 持续工作,每隔1s触发一次 */call Timer1.startPeriodic(1000);/* 定时器2: 持续工作,每隔3s触发一次*/call Timer2.startPeriodic(3000);/* 定时器1的事件处理函数 */event void Timer1.fired()/* 事件处理中直接切换蓝色LED灯 */ADBG(5, "led blue toggle.rn"); if (i<=3) LED_BLUE_TOGGLE; else LED_BLUE_ON; /* 定时器2的事件处理函数 */event void Timer2.fired()ADBG(5, "led yellow toggle.rn"); if (i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于实时数据的旅游指南服务质量实时监控-洞察及研究
- 混合式智能研修模式在旅游企业培训中的实施与效果分析教学研究课题报告
- 2025年氢气管网五年氢能船舶与港口管网对接报告
- 2025年民警队伍风险隐患排查报告
- 酒石酸衍生物热力学性质研究-洞察及研究
- 基因编辑的分子机制与功能研究-洞察及研究
- 钙钛矿太阳能电池的耐久性与可靠性分析-洞察及研究
- 绿色微生物检测方法在食品工业中的应用-洞察及研究
- 道路交通安全隐患排查整治工作方案
- 基于机器学习的广告效果预测模型研究-洞察及研究
- 2025~2026学年上海市闵行区莘松中学八年级上学期期中语文试卷
- 医院拟就业协议书
- 2026届四川南充市高考一诊地理试卷试题(含答案详解)
- 2026年郑州澍青医学高等专科学校单招职业技能测试必刷测试卷带答案
- 2025年山东省烟台市辅警招聘公安基础知识考试题库及答案
- (一诊)达州市2026届高三第一次诊断性测试英语试题(含标准答案)
- 2025年贵阳市公安辅警招聘知识考试题库及答案
- 交管12123驾照学法减分题库500题(含答案解析)
- 金属补偿器培训
- 《寝室夜话》(4人)年会晚会搞笑小品剧本台词
- 开放大学土木工程力学(本)模拟题(1-3)答案
评论
0/150
提交评论