利用 timer 控制 led_第1页
利用 timer 控制 led_第2页
利用 timer 控制 led_第3页
利用 timer 控制 led_第4页
利用 timer 控制 led_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实 验 报 告实验名称:利用Timer控制LED实验课程名称:无线传感器网络实验院 系 部:电院 专业班级:电网1403学生姓名:马嘉 学 号:1141600318同 组 人:马龙 实验台号:9指导教师:武昕 成 绩: 实验日期:2017/4/19华北电力大学一、实验目的1、理解利用 Mote 设备的 Timer 控制 LED,通过编写实例程序,直接控制 Mote设备的 LED 的运行。 2、理 解 Blink Timer组件(BlinkTimer.nc 、 BlinkTimerM.nc 、SingleTimer.nc)的功能和结构二、实验要求根据提供的例子程序,详细了解nesC程序的结构,以及LED亮灯的控制,然后尝试进行程序的修改运行。实验具体要求如下:1、掌握编译及烧录telosb程序的方法;2、修改例子程序,只使用一个Timer,三个LED灯进行循环亮灭。三、实验原理1、BlinkTimer.nc 文件是记录 BlinkTimer 实例中使用的各个组件之间连接的配置文件;BlinkTimerM.nc 文件是对如何进行实例中的本功能LED 控制进行记录的模块文件。2、SingleTimer 是利用 TimerC 组件构成的新的报警组件。通过 SingleTimer声明配置文件后,通过Provide 声明接口 Timer 和StdControl。在 Implementation 中声明所要使用的组件 TimerC,对通过 Provide声明的 Timer 接口和 TimerC 组件的 Timer 接口进行连接。此时,Timer 可以在个组件中同时使用,通过使用 Unique 的排列形式进行声明,使多个组件具有互不相同的 Timer。3、BlinktimerM.nc首先,在 Module 之后记录 BlinkTimerM,对将使用的接口进行声明,在Implementation 部分记录与实际运行有关的内容。 对显示 Red LED 状态的变量 state,以 Bool 形式进行声明,分别定义接口StdControl 的 init()、start()、stop()函数。 首先,在 StdControl 的 init()函数中,在 state 中加入 FALSE 后,调用 LedsC中提供的接口 Leds 的 init()函数,对 LED 进行初始化。 在 StdControl 的 start()函数中,为了能够在一段时间后调用 Timer.fired(函数,在设定时间时调用 Timer.start()函数。进入 Timer.start()函数的第一个参数中的保留字为 ONE_SHOOT 及 TIMER_REPEAT。这里的 ONE_SHOOT 指仅调用一次Timer.fired() event,而 TIMER_REPEAT 则指周期性地持续调用 Timer.fired() event。第二个参数是对 Timer 在多长时间(以毫秒单位)之后生成 Signal 进行时间设置的部分。在上述源代码中,第一个参数中记录了 TIMER_REPEAT;在第二个参数中则记录了数字1000,每隔一秒反复生成Signal,调用 Timer.fired() event。与实际 Timer 相关的内容可参考“/tos/system/TimerC.nc”和 TimerM.nc文件中的内容。 在 StdControl 的 stop()函数中,为了停止从Start 开始的 Timer,调用Timer.stop()函数。 在 StdControl.start()函数中已调用的 Timer.start()函数,每隔一秒反复生成 Signal,调用本实例的 event Timer.fired()函数。 在 Timer.fired()函数中,否定原来具有 FALSE 值的 state,重新将 TRUE 值加入 state 变量中,调用通过 Task 定义的 Processing 函数。在通过 Task 定义的 Processing 函数中,当 state 为 TRUE 时,调用接口 Leds的 redOn()函数,打开 Red LED;当 state 为 FALSE 时,调用 redOff(),关闭 Red LED。从结果来看,在该实例中,Red LED 每秒重复打开/关闭。四、实验过程1、依次输入cd /opt/tinyos-1.x/contrib/zigbex cd BlinkTimermake zigbex得到2、编译后,生成“build/zigbex”文件夹。在该文件夹中生成 Main.hex 文件。利用 ISP 工具将 Main.hex 安装到 Mote 设备中。在运行 PonyProg 程序后,为了打开 Main.hex 文件,找出相应路径。3、按打开按钮。载入 Main.hex 后,在窗口中显示 Hex。4、此时,在 Command 菜单中选择“Write Program”,把 Main.hex 载入到 ZigbeX Mote 设备中。5、 运行 AVR Studio; AVR Studio 中选择 Tools-Program AVR-Auto Connect 菜单,连接到 USBISP 上; 连接完成后,出现如下下载画面。点击“.”按钮,选择所需的 Hex 文件后,点击“Program”按钮即可运行程序。第一次在 AVR 中运行程序时,请点击下一个 Fuses 栏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论