aots实验报告

上传人:简****9 文档编号:99364369 上传时间:2019-09-18 格式:DOC 页数:49 大小:1.23MB
返回 下载 相关 举报
aots实验报告_第1页
第1页 / 共49页
aots实验报告_第2页
第2页 / 共49页
aots实验报告_第3页
第3页 / 共49页
aots实验报告_第4页
第4页 / 共49页
aots实验报告_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《aots实验报告》由会员分享,可在线阅读,更多相关《aots实验报告(49页珍藏版)》请在金锄头文库上搜索。

1、计算机科学与技术学院、软件学院学生实验报告实验题目: 基于ATOS平台的物联网实验 学生姓名: 指导教师: 专业班级: 提交日期: 49 实验一 LED组件1.1 实验要求绿灯一直处于熄灭的状态,红灯不停闪烁(注意:工具箱提供的代码有bug,对于基站节点LED_BLUE - 红灯 LED_YELLOW - 绿灯 ON和OFF逻辑相反)1.2 实验思路将绿灯状态改为OFF,红灯通过时间延迟控制其的亮灭。1.3 实验关键代码/* LED 示例程序的实现模块,简单的点亮3个LED灯date 2010-1*/module LedMuses interface Boot;implementation/*

2、 LED灯演示*/task void DemoLed()/* 目前节点上提供两个LED灯LED_BLUE - 蓝灯LED_YELLOW - 黄灯*/int i,j;while(1)for(i=0;i1000;i+)for(j=0;j500;j+);LED_BLUE_OFF; /* 熄灭蓝色LED灯 */LED_YELLOW_OFF; /* 点亮黄色LED灯 */for(i=0;i1000;i+)for(j=0;j500;j+);LED_BLUE_ON; /* 熄灭蓝色LED灯 */LED_YELLOW_OFF; /* 点亮黄色LED灯 */* 启动事件处理函数,在LED.nc已经关联到Main

3、C.Boot接口系统启动后会调用此函数*/event void Boot.booted()post DemoLed();1.4 实验截图1.5 实验心得通过这次实验,掌握了对 LED的简单控制,受益匪浅,并且对此次实验的运作过程开始了解。 实验二 定时器组件1.1 实验要求通过定时器让绿色灯闪烁,并且闪烁三次后停止闪烁。1.2 实验思路设置一个变量,在计时器每计数一次自加一次,加到三时,停止计时器。1.3 实验关键代码#define DBG_LEV 5module TimerLedMuses interface Boot;/* Timer为系统接口TMilli指明了定时器的精度为毫秒 */us

4、es interface Timer as Timer1; /* as关键字为接口别名 */uses interface Timer as Timer2;implementation/* 任务: 切换黄色LED灯 */int i=0;/* 启动事件处理函数,在TimerLed.nc已经关联到MainC.Boot接口系统启动后会调用此函数*/event void Boot.booted()/* 定时器1: 持续工作,每隔1s触发一次 */call Timer1.startPeriodic(1000);/* 定时器2: 持续工作,每隔3s触发一次*/call Timer2.startPeriodi

5、c(5000);/* 定时器1的事件处理函数 */event void Timer1.fired()/* 事件处理中直接切换蓝色LED灯 */ADBG(5, led blue toggle.rn);/LED_BLUE_TOGGLE;ADBG(5, led yellow toggle.rn);/post ToggleLedYellow();LED_YELLOW_TOGGLE;i=i+1;if(i=3) call Timer1.stop(); /通过stop函数使定时器停止/* 定时器2的事件处理函数 */event void Timer2.fired()/ADBG(5, led yellow t

6、oggle.rn);/post ToggleLedYellow();1.4 实验截图1.5 实验心得通过此次实验,加强了我对代码的思考,更加了解定时器函数的使用。实验三 串口调试1.1 实验要求通过级别控制,使得某些调试语句没有被输出到串口。1.2 实验思路默认的ADBG_LEV为3000,将语句中的DBG_LEV参数改为比默认的ADBG_LEV小即可1.3 实验关键代码/* 串口调试程序的实现模块date */* 定义调试级别,参加Makefile的ADBG_LEVEL定义,设置大于等于ADBG_LEVEL */#define DBG_LEV3000module SerialDebugMus

7、es interface Boot;implementation/* 任务: 通过串口打印信息来调试 */task void DebugSerial()uint8_t num1 = 0x39;uint32_t num2 = 0x12345678;float float1 = 123.1234;/* ADBG,格式类似于printf,第一个参数为调试等级,可以参见tos/lib/common/antdebug.h */* 打印字符和字符串 */ADBG(DBG_LEV, rnrnDEMO of Serial Debugrn, x);ADBG(DBG_LEV, 1. This is a strin

8、g, and this is char %crn, x);/* 打印8位的数字 */ADBG(DBG_LEV, 2. NUM1: HEX=0x%x, DEC=%drn, (int)(num1), (int)(num1);/* 打印32位数字 */ADBG(2000, 2. NUM2: HEX=0x%lx, DEC=%ldrn, (uint32_t)(num2), (uint32_t) (num2);/* 打印浮点数*/ADBG(DBG_LEV, 3. FLOAT: %frn, float1);/* 启动事件处理函数,在SerialDebug.nc已经关联到MainC.Boot接口系统启动后会调

9、用此函数*/event void Boot.booted()post DebugSerial();1.4 实验截图图1 未屏蔽前图2 屏蔽后1.5 实验心得此次实验加深了我对串口的了解与使用,是一次非常好的实验材料,受益匪浅。实验四 串口通信1.1 实验要求实现一个串口实验,在串口助手中实现回显的功能。(键盘键入的任何内容回车后显示在串口助手的终端)1.2 实验思路直接在原有的UartStream.receivedByte函数基础上修改,直接输出结果1.3 实验关键代码/* 串口输入输出程序的实现模块authordate */#include /* 定义此宏,将演示UartStream.rec

10、eive函数,允许一次指定数量的数据 */#define SERIALIO_RECEIVE#define DBG_LEV3000module SerialIoMuses interface Boot;uses interface StdControl as UartStdControl;uses interface UartStream;implementationuint8_t m_receive_len;uint8_t m_echo_buf;uint8_t m_send_buf100;/* 显示一个菜单提示用户 */void showMenu() strcpy(m_send_buf, rn

11、rnDemo of Serio I/Orn1 Toggle BLUE LEDrn2 Toggle YELLOW LEDrn);/* 通过UartStream.send可以发送字节数据 */call UartStream.send(m_send_buf, strlen(m_send_buf);/* 启动事件处理函数,在SerialIo.nc已经关联到MainC.Boot接口系统启动后会调用此函数*/event void Boot.booted()LED_BLUE_ON;LED_YELLOW_ON;call UartStdControl.start();showMenu();async event

12、 void UartStream.sendDone(uint8_t *buf, uint16_t len, error_t error)/* 重新发送刚才接收的字符进行回显 */task void showMenuTask()showMenu();task void lightLED()if(m_echo_buf=1)LED_BLUE_TOGGLE; /* 切换蓝色LED灯 */ADBG(DBG_LEV, You choose to toggle BLUE LEDrn);else if (m_echo_buf = 2)LED_YELLOW_TOGGLE; /* 切换黄色LED灯 */ADBG(DBG_LEV, You choose to toggle YELLOW LEDrn);/* 如果没有调用receive接收,则每接收到一个数据就会触发此事件 */async event void UartStre

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号