物联网实验报告Word格式.docx
- 文档编号:14019899
- 上传时间:2022-10-17
- 格式:DOCX
- 页数:34
- 大小:24.62KB
物联网实验报告Word格式.docx
《物联网实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《物联网实验报告Word格式.docx(34页珍藏版)》请在冰豆网上搜索。
/**
LED示例程序的实现模块,简单的点亮3个LED灯
@date2010-1
*/
moduleLedM
{
usesinterfaceBoot;
}
implementation
/**LED灯演示
*/
taskvoidDemoLed()
{
/**目前节点上提供两个LED灯
LED_BLUE->
蓝灯
LED_YELLOW->
黄灯
inti,j;
while
(1)
LED_YELLOW_ON;
//熄灭黄色LED灯
for(i=0;
i<
1000;
i++)
for(j=0;
j<
500;
j++);
LED_BLUE_OFF;
//点亮蓝色LED灯
LED_BLUE_ON;
//熄灭蓝色LED灯
/**启动事件处理函数,在LED.nc已经关联到MainC.Boot接口
系统启动后会调用此函数
eventvoidBoot.booted()
postDemoLed();
实验二定时器组件
一、实验内容
通过定时器让绿色灯闪烁,并且闪烁三次后停止闪烁。
二、实验步骤
1)将基站同电脑用烧录线连接好,打开基站的开关,同时将基站的烧录开关拨
上去。
3)在Cygwin界面中执行cdapps/Demos/Basic/Timer,进入到定时器实验目录下。
4)在定时器代码目录下执行makeantc5install,进行编译和烧录。
5)实验现象为基站上绿色灯闪烁,并且闪烁三次后停止闪烁。
#defineDBG_LEV5
moduleTimerLedM
/*Timer为系统接口TMilli指明了定时器的精度为毫秒*/
usesinterfaceTimer<
TMilli>
asTimer1;
/*as关键字为接口别名*/
asTimer2;
/**任务:
切换黄色LED灯*/
taskvoidToggleLedYellow()
LED_YELLOW_TOGGLE;
}
/**启动事件处理函数,在TimerLed.nc已经关联到MainC.Boot接口
eventvoidBoot.booted()
callTimer2.startPeriodic(1000);
/**定时器1:
持续工作,每隔1s触发一次*/
callTimer1.startPeriodic(6000);
/**定时器2:
持续工作,每隔3s触发一次*/
//callTimer2.startPeriodic(5000);
/**定时器1的事件处理函数*/
eventvoidTimer1.fired()
/**事件处理中直接切换蓝色LED灯*/
ADBG(5,ledbluetoggle.\r\n);
//LED_BLUE_TOGGLE;
callTimer2.stop();
/**停止定时器触发*/
callTimer1.stop();
/**定时器2的事件处理函数*/
eventvoidTimer2.fired()
ADBG(5,ledyellowtoggle.\r\n);
postToggleLedYellow();
实验三串口调试
通过级别控制,使得某些调试语句没有被输出到串口。
2)用串口线将基站和PC机器连接起来。
3)打开串口助手。
4)打开Cygwin开发环境。
5)在Cygwin界面中执行cdapps/Demos/Basic/SerialDebug,进入到串口调试实验目录下。
6)在串口调试代码目录下执行makeantc5install,进行编译和烧录。
7)烧录成功后,实验现象为串口有内容输出,输出内容如下:
DEMOofSerialDebug
1.Thisisastring,andthisischarx
2.NUM1:
HEX=0x39,DEC=57
4.FLOAT:
0x123.1234
串口调试程序的实现模块
@date
/*定义调试级别,参加Makefile的ADBG_LEVEL定义,设置大于等于ADBG_LEVEL*/
#defineDBG_LEV3000
#defineDBG_LEV22000
moduleSerialDebugM
通过串口打印信息来调试*/
taskvoidDebugSerial()
uint8_tnum1=0x39;
uint32_tnum2=0x12345678;
floatfloat1=123.1234;
/**ADBG,格式类似于printf,
第一个参数为调试等级,可以参见tos/lib/common/antdebug.h
/**打印字符和字符串*/
ADBG(DBG_LEV,\
\n\r\nDEMOofSerialDebug\r\n,'
x'
);
ADBG(DBG_LEV,.Thisisastring,andthisischar
'
%c'
\r\n,'
/**打印8位的数字*/
ADBG(DBG_LEV,.NUM1:
HEX=0x%x,DEC=%d\r\n,
(int)(num1),(int)(num1));
/**打印32位数字*/
ADBG(DBG_LEV2,.NUM2:
HEX=0x%lx,DEC=%ld\r\n,
(uint32_t)(num2),(uint32_t)(num2));
/**打印浮点数*/
ADBG(DBG_LEV,.FLOAT:
%f\r\n,float1);
/**启动事件处理函数,在SerialDebug.nc已经关联到MainC.Boot接口
postDebugSerial();
实验四串口通信
实现一个串口实验,在串口助手中实现回显的功能。
1)将基站同电脑用烧录线连接好,打开基站的开关。
5)在Cygwin界面中执行cdapps/Demos/Basic/SerialIO,进入到串口通讯实验目
录下。
6)在串口通讯代码目录下执行makeantc5install,进行编译和烧录。
7)根据串口输出的提示进行操作,在串口助手的字符输入框输入1,红灯会一直亮着,直到再一次输入1才熄灭;
在串口助手的字符输入框输入2,绿灯会一直亮着,直到再一次输入1才熄灭,输入其他数字串口会提示“Error
key”,并且会显示你输入的数字,结果如下:
DemoofSerioI/O
[1]ToggleBLUELED
[2]ToggleYELLOWLED
Youchoosetoinput1
YouchoosetoToggleBLUELED
三、实验代码/**
串口输入输出程序的实现模块
@author
#include<
strings.h>
/**定义此宏,将演示UartStream.receive函数,允许一次指定数量的数据*/
//#defineSERIALIO_RECEIVE
moduleSerialIoM
usesinterfaceStdControlasUartStdControl;
usesinterfaceUartStream;
uint8_tm_receive_len;
uint8_tm_echo_buf;
uint8_tm_send_buf[100];
/*显示一个菜单提示用户*/
voidshowMenu()
strcpy(m_send_buf,\
\n\r\nDemoofSerioI/O\r\n[1]
ToggleBLUELED\r\n[2]ToggleYELLOWLED\r\n);
/*通过UartStream.send可以发送字节数据*/
callUartStream.send(m_send_buf,strlen(m_send_buf));
/**启动事件处理函数,在SerialIo.nc已经关联到MainC.Boot接口
LED_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 联网 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)