无线传感器网络练习-05-利用Task控制LED_第1页
无线传感器网络练习-05-利用Task控制LED_第2页
无线传感器网络练习-05-利用Task控制LED_第3页
无线传感器网络练习-05-利用Task控制LED_第4页
无线传感器网络练习-05-利用Task控制LED_第5页
已阅读5页,还剩12页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、本章正式作为针对控制HBE-Ubi-CC2431节点的第一章练习,将使用TinyOS提供的LED组件,学习控制节点的Red, Yellow, Green三种LED的方法和其结构。利用Task(任务模式)的LED 控制5.2 培训目标理解节点的LED控制,尝试通过创建例题程序,使节点的LED直接运行。理解TinyOS提供的LedsC组件结构。理解Blink例题中使用的多个下层组件。5.3 基本知识节点LED的一般用途 LED主要用于确认感应器节点的状态及是否执行特定操作即使不用其他的调试方法,也可以通过LED的状态轻松确认节点的运行状态LedsC 组件LedsC是一个组件,用来控制LED. Le

2、dsC 组件通过使用Leds的,为了控制节点中的三种LED,提供了如下的Command函数.5.3 基本知识Leds 组件中提供的函数整体LED控制Leds.get()提取当前Led的状态。(bit0=led0, bit1=led1, bit2=led2)Leds.set(uint8_t) 将Led的状态设定为输入的值。 (bit0=led0, bit1=led1, bit2=led2)红色 LEDLeds.led0On() 打开红色 LED。Leds.led0Off() 关闭红色 LED。Leds.led0Toggle() 将红色 LED变更为与当前状态相反的状态。(通常用于LED闪烁时)

3、绿色 LEDLeds.led1On() 打开绿色 LED。Leds.led1Off() 关闭绿色 LED。Leds.led1Toggle() 将绿色 LED变更为与当前状态相反的状态。(通常用于LED闪烁时)黄色 LEDLeds.led2On() 打开黄色 LED。Leds.led2Off() 关闭黄色 LED。Leds.led2Toggle() 将Y黄色 LED变更为与当前状态相反的状态。(通常用于LED闪烁时)5.4.1 Blink 例题的构成Blink 程序文件Blink.nc Blink 例程的配置文件.BlinkM.nc Blink 例程的模块文件Blink 文件的位置cygwin安

4、装目录/opt/tinyos-2.x/contrib/cc2431/Blink/ 请参阅 Bink.nc 和 BlinkM.nc 文件夹中的文件。5.4.1 Blink.ncBlink.nc Blink 例题中的各组件配置关系5.4.1 Blink.nc4:components 后是使用的模块,有MainC、BlinkM以及用于控制LED的组件LedsC及提供延迟功能的BusyWaitMicroC5:在TinyOS2.X中通过Boot接口与MainC模块连接。MainC组件及TinyOS的相关设点结束后,通过Boot的Booted事件开始程序6: 连接模块BlinkM的接口Leds和下层组件L

5、edsC的接口Leds7: 为了提供以us为单位延迟时间的BusyWait接口,连接BusyWaitMicroC组件1: configuration Blink 2: 3: implementation 4: components MainC, BlinkM, LedsC, BusyWaitMicroC;5: BlinkM.Boot - MainC;6: BlinkM.Leds - LedsC;7: BlinkM.BusyWait -BusyWaitMicroC;8: 5.4.2 BlinkM.nc1: module BlinkM 2: uses 3: interface Boot;4: in

6、terface Leds;5: interface BusyWait;6: 7: 8: implementation 9: task void led_task(); 10: event void Boot.booted() 11: post led_task(); 12: 26:Module文件中,通过uses声明的接口,有通知程序开始的Boot接口,控制LED的Leds接口,提供延迟时间的BusyWait接口。BusyWait的内的内容中,TMicro意味着时间单位以us为单位,设定的时间变量类型为uint16_t。9:为了声明想要通过Task运行的特征函数,需在函数前添加关键词task,

7、第9行中的led_task在第13行被定义。1012 :如果TinyOS初始化完毕,根据MainC 组件,Boot.booted()函数被调用。在该函数中,为了调用第9行的Task函数,而使用了关键词post。如果booted函数结束,依靠调度程序,led_task() Task函数被调用。5.4.2 BlinkM.nc13: task void led_task()14: int i;15: for(i=0; i程序-Texas Instruments-SmartRF Flash Programmer 1.5.0- SmartRF Flash Programmer)。使要下载的HBE-Ubi

8、-CC2431节点的USB MCU开关移向MCU后。5.5 Blink下载Flash Programmer启动运行如果已与PC连接好,则在Flash Programmer运行后,画面将如下图所示。5.5 Blink下载Flash Programmer的初始画面上将如上图所示以蓝色行显示哪个节点与PC连接。现在,在“Flash”路径输入行中单击 按钮,选择刚才编译的例题的app.hex文件。5.5 Blink下载如果设定了要下载的hex文件,接下来单击Flash Programmer下端的“Perform action”按钮。如果单击该按钮,所选的hex文件会通过C8051F320被下载到cc2431芯片中。5.5 Blink下载 zigbex 及 ZigbeX2 节点)ZigbeX及ZigbeX2 通过AVR Studio的下载方法123455.6 Blink 练习 结果结果如果完成了按上述顺序进行的实习,将会看到韩伯节点的Yellow LED被打开,每隔30ms Gre

温馨提示

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

最新文档

评论

0/150

提交评论