ImageVerifierCode 换一换
格式:DOCX , 页数:45 ,大小:460.98KB ,
资源ID:2569291      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2569291.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(TINYOS试验.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

TINYOS试验.docx

1、TINYOS试验Keil的破解:打开keil,file-license management,复制CID 号到keygen.exe中,点generate,将生成的号复制到keil license management中的 new license ID Code 中。1. 启动Cygwin,2. 输入命令cd /opt/atos,进入该目录后,用ls命令可以查看目录下有环境变量配置文件setupenv,然后执行source setupenv命令,使环境变量生效。 3. 进入apps文件夹,再进入Atosenet文件夹,输入ls查看 4. 对基站节点烧写 对于基站节点,请将基站节点插入网关板的插口

2、处,将USB线缆一端与PC端USB口连接,一端与基站板USB Slave端连接。发现新硬件后选择自动安装软件,选择下一步直到完成安装。5. 进入如下目录:cd /opt/atos/apps/Atosenet/ANTBase 6执行基站烧写命令make antc3 install NID=01 GRP=01 7烧写成功8. 对传感器节点烧写 对于传感器节点,请将传感器节点插入网关板的插口处(直接将网关板节点取下替换),将USB线缆一端与PC端USB口连接,一端与基站板USB Slave端连接。9. 进入如下目录:cd /opt/atos/apps/Atosenet/ANTc3 9.执行传感节点烧

3、写命令make antc3 ASO=TH TYPE=1 install NID=02 GRP=01烧写成功10.再对另外两个节点执行烧些命令make antc3 ASO=TH TYPE=1 install NID=03 GRP=01make antc3 ASO=TH TYPE=1 install NID=04 GRP=0111.运行dotnefx.exe, 即Microsoft Framework 2.0安装程序,在运行AtosWin.msi,即AtoStudio数据管理软件的安装程序。将基站节点插入网关板的插口处,将USB线缆一端与PC端USB口连接,一端与基站板USB Slave端连接。将

4、其他几个传感器节点放在不同位置,打开电源开关。打开AtoStudio数据管理软件,并开启监控,故可以看到传感节点。实验三 硬件接口实验1. 启动Cygwin,输入命令cd /opt/atos进入TinyOS主目录,用命令ls可以查看目录下的所有文件。 2. 输入命令cd /opt/atos,进入该目录后,用ls命令可以查看目录下有环境变量配置文件setupenv,然后执行source setupenv命令,使环境变量生效,最后执行export | grep ATOSROOT来查看。 3. 输入命令cd apps,进入应用程序目录后,再用ls查看目录下包含的文件和目录,然后使用命令mkdir M

5、yProject来创建一个名为MyProject的目录4打开NesC编辑器,file-new 编写好程序后file-save as保存在MyProject目录下,保存文件名为Led.nc代码为configuration Ledimplementation components LedM; /* LED模块程序,用于实现LED代码 */ components MainC; /* TinyOS2主模块,这里用于关联系统启动 */ LedM.Boot - MainC.Boot;/* LED模块程序的Boot接口与系统Boot接口关联 这样系统启动时会调用LedM的Boot接口? */同理在编写Led

6、M.nc,也保存在MyProject目录下。代码为module LedM uses interface Boot;implementation /* LED灯演示 */ task void DemoLed() int i,j; while(1) /*/ for(i=0;i1000;i+)for(j=0;j1000;j+); /*注意上面两行代码仅仅起延时作用,是一个空循环,下面两行可以认为是并行执行,两语句的执行间隔可忽略不计,故可以看到两灯同时点亮*/ LED_BLUE_ON; /* 点亮蓝色LED灯 */ LED_YELLOW_ON; /* 点亮黄色LED灯 */ for(i=0;i100

7、0;i+) for(j=0;jnew 编写Makefile文件,代码为COMPONENT=Led#PFLAGS += -DUSE_MODULE_LEDPFLAGS += -DUSE_MODULE_LEDinclude $(MAKERULES)5. 用命令ls可以查看在MyProject目录下包含了新建的Led.nc,LedM.nc和Makefile文件 6将CC2430核心板插到网关板上,连接上USB_Slave线缆,打开网关板电源,进入工程MyProject目录,运行烧录命令: 7烧写成功可以看到网关板上的D2、D3灯同时点亮,一段时间后同时熄灭,两灯同时点亮同时熄灭交替进行,而将CC243

8、0核心板插到电池板上,也会看到相同的现象 8改写LedM.nc代码,可实现蓝灯,黄灯交替闪烁。module LedM uses interface Boot;implementation /* LED灯演示 */ task void DemoLed() /* 目前节点上提供两个LED灯 LED_BLUE - 蓝灯 LED_YELLOW - 黄灯 */ int i,j; while(1) for(i=0;i1000;i+) for(j=0;j1000;j+); LED_BLUE_OFF; /* 熄灭蓝色LED灯 */ LED_YELLOW_ON; /* 点亮黄色LED灯 */ for(i=0;i

9、1000;i+) for(j=0;j MainC.Boot; /* 使用系统毫秒级Timer组件新建第一个定时器 并且接口关联到TimerLedM处理模块 */ components new SleepTimerMilliC() as Timer1; TimerLedM.Timer1 - Timer1; /* 使用系统毫秒级Timer组件新建第二个定时器 */ components new SleepTimerMilliC() as Timer2; TimerLedM.Timer2 - Timer2; TimerLedM.nc代码为/* 定时器示例程序的实现模块,间隔点亮两个LED灯autho

10、r NUAAdate */module TimerLedM uses interface Boot; /* Timer为系统接口TMilli指明了定时器的精度为毫秒 */ uses interface Timer as Timer1; /* as关键字为接口别名 */ uses interface Timer as Timer2;implementation /* 任务: 切换黄色LED灯 */ task void ToggleLedYellow() LED_YELLOW_TOGGLE; /* 启动事件处理函数,在TimerLed.nc已经关联到MainC.Boot接口 系统启动后会调用此函数

11、 */ event void Boot.booted() /* 定时器1: 持续工作,每隔1s触发一次 */ call Timer1.startPeriodic(1000); /* 定时器2: 持续工作,每隔2s触发一次*/ call Timer2.startPeriodic(2000); /* 定时器1的事件处理函数 */ event void Timer1.fired() /* 事件处理中直接切换蓝色LED灯 */ LED_BLUE_TOGGLE; /* 定时器2的事件处理函数 */ event void Timer2.fired() post ToggleLedYellow(); Mak

12、efile代码为COMPONENT=TimerLed#PFLAGS += -DUSE_MODULE_LED#include $(MAKERULES)3.将CC2430核心板插到网关板上,连接上USB_Slave线缆,打开网关板电源, 进入工程MyProject目录,运行烧录命令可以看到网关板上的D2每隔1s亮一次,D3灯每隔2s亮一次,而将CC2430核心板插到电池板上,也会看到相同的现象 实验四 ADC采样实验 以下步骤描述了如何逐步执行实验来实现ADC采样的值。1. 点击Cygwin输入命令cd /opt/atos,进入该目录后,用ls命令可以查看目录下有环境变量配置文件setupenv,

13、然后执行source setupenv命令,使环境变量生效。 2. 打开nesc编辑器,编写AdcSensor.nc, AdcSensorM.nc,Makefile文件,并将其保存在apps目录下的MyProject文件夹下。AdcSensor.nc代码为configuration AdcSensorimplementation components AdcSensorM; /* AdcSensor模块程序,用于实现具体代码 */ components MainC; /* TinyOS2主模块,这里用于关联系统启动 */ /* AdcSensor模块程序的Boot接口与系统Boot接口关联 这

14、样系统启动时会调用AdcSensorM的Boot接口 */ AdcSensorM.Boot - MainC.Boot; /* 系统AD采集组件 */ components new AdcC() as AdcDemo; AdcSensorM.AdcControl - AdcDemo; AdcSensorM.AdcRead - AdcDemo; AdcSensorM.nc代码为#include Adc.h/* 定义调试级别,参加Makefile的ADBG_LEVEL定义,设置大于等于ADBG_LEVEL */#define DBG_LEV 9module AdcSensorM uses inter

15、face Boot; uses interface AdcControl; uses interface Read as AdcRead;implementation task void SensorData() ADBG(DBG_LEV, rnStart ADC reading.); /* 配置ADC工作模式: 1: 14bit A/D 2: 参考电压 VDD 3.3V 3: AD通道4(p0.4) */ call AdcControl.enable(ADC_REF_AVDD, ADC_14_BIT, ADC_AIN4); if (call AdcRead.read() = SUCCESS)

16、 ADBG(DBG_LEV, OKrn); else ADBG(DBG_LEV, FAILrn); event void AdcRead.readDone(error_t result, int16_t val) /* 响应于AdcRead.read(),系统AD转换完成触发该事件 */ if (result = SUCCESS) ADBG(DBG_LEV, AdcRead.readDone: SUCCESS, value=0x%xrn, val); else ADBG(DBG_LEV, AdcRead.readDone: FAIL!rn, val); event void Boot.boot

17、ed() post SensorData(); Makefile代码为COMPONENT=AdcSensor#使用LED模块PFLAGS += -DUSE_MODULE_LED#使用串口调试模块PFLAGS += -DUART_DEBUG#调试级别PFLAGS += -DADBG_LEVEL=9#include $(MAKERULES)3.将CC2430核心板插到网关板上,连接上USB_Slave线缆,打开网关板电源,进入工程MyProject目录,执行make antc3 install NID=01 GRP=01。 烧录成功4. 从计算机的开始菜单所有程序附件通讯超级终端,打开超级终端设置

18、,进行如下设置:选择 COM4,波特率设为9600,数据流控制选择无。将网关板的串口通过我们提供的串口线与计算机的串口连接起来,按网关板上的复位键RESET(每按一次都会输出一段信息),将在超级终端输出如下信息: 实验五 串口通讯实验利用调试函数进行串口输出1.设置环境变量在/opt/atos/apps目录下建立一个SerialDebug目录 2. 打开nesc编辑器,编写SerialDebug.nc,SerialDebugM.nc,Makefile文件,并将其保存在apps目录下的SerialDebug文件夹下。SerialDebug.nc代码为configuration SerialDeb

19、ugimplementation components SerialDebugM; /* SerialDebug模块程序,用于实现具体代码 */ components MainC; /* TinyOS2主模块,这里用于关联系统启动 */ /* SerialDebug模块程序的Boot接口与系统Boot接口关联 这样系统启动时会调用SerialDebugM的Boot接口 */ SerialDebugM.Boot - MainC.Boot; components PlatformSerialC; SerialDebugM.CC2430UartControl - PlatformSerialC;Se

20、rialDebugM.nc代码为/* 定义调试级别,参加Makefile的ADBG_LEVEL定义,设置大于等于ADBG_LEVEL */#define DBG_LEV 9module SerialDebugM uses interface Boot; uses interface CC2430UartControl;implementation /* 任务: 通过串口打印信息来调试 */ task void DebugSerial() uint8_t num1 = 0x69; uint32_t num2 = 0x12344321; float float1 = 321.123; /*只能最多

21、显示出7位*/ /* ADBG,格式类似于printf, 第一个参数为调试等级,可以参见tos/lib/common/antdebug.h */ /* 打印字符和字符串 */ ADBG(DBG_LEV, rn朱才智超级终端欢迎您!rn, x);/*r将当前位置移到当前行头,n回车换行,将当前位置移到下一行开头*/ ADBG(DBG_LEV, rnrnDEMO of Serial Debugrn, x); ADBG(DBG_LEV, 1. This is a string, and this is char %crn, x); /* 打印8位的数字 */ ADBG(DBG_LEV, 2.输出一个

22、uint8_t,显示出十六进制和十进制大小rn, x); ADBG(DBG_LEV, NUM1: HEX=0x%x, DEC=%drn, (int)(num1), (int)(num1); /* 打印32位数字 */ ADBG(DBG_LEV, 3.输出一个uint32_t,显示出十六进制和十进制大小rn, x); ADBG(DBG_LEV, NUM2: HEX=0x%lx, DEC=%ldrn, (uint32_t)(num2), (uint32_t)(num2); /* 打印浮点数*/ ADBG(DBG_LEV, 4.输出一个浮点型rn, x); ADBG(DBG_LEV, FLOAT:

23、%frn, float1); /* 启动事件处理函数,在SerialDebug.nc已经关联到MainC.Boot接口 系统启动后会调用此函数 */ event void Boot.booted() call CC2430UartControl.setBaudRate(9600); post DebugSerial(); Makefile代码为COMPONENT=SerialDebug#使用LED模块PFLAGS += -DUSE_MODULE_LED#使用串口调试模块PFLAGS += -DUART_DEBUG#调试级别PFLAGS += -DADBG_LEVEL=9#include $(M

24、AKERULES)3利用cd命令进入SerialDebug目录,执行make antc3 install编译工程文件并将起自动烧写到cc2430中。烧写成功4.从计算机的开始菜单所有程序附件通讯超级终端,打开超级终端设置,进行如下设置:选择 COM4,波特率设为9600,数据流控制选择无。将网关板的串口通过我们提供的串口线与计算机的串口连接起来,按网关板上的复位键RESET(每按一次都会输出一段信息),将在超级终端输出如下信息:创建I/O口控制工程文件1. 在cygwin环境下进入/opt/atos目录,设置环境变量。输入命令cd /opt/atos/apps进入应用程序目录 在/opt/at

25、os/apps目录下建立一个SerialIo目录 2.打开nesc编辑器,编写SerialIo.nc,SerialIoM.nc,Makefile文件 ,并保存在SerialIo目录下,SerialIo.nc代码为configuration SerialIoimplementation components SerialIoM; /* SerialIo模块程序,用于实现具体代码 */ components MainC; /* TinyOS2主模块,这里用于关联系统启动 */ /* SerialIo模块程序的Boot接口与系统Boot接口关联 这样系统启动时会调用SerialIoM的Boot接口 */ SerialIoM.Boot - MainC.Boot; /* PlatformSerialC */ components PlatformSeria

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2