12计科1班_201241402128_陈建豪-实验【1.2】.docxVIP

  • 6
  • 0
  • 约1.73千字
  • 约 5页
  • 2017-07-05 发布于重庆
  • 举报

12计科1班_201241402128_陈建豪-实验【1.2】.docx

12计科1班_201241402128_陈建豪-实验【1.2】

《物联网导论》实验报告 姓 名: 陈建豪 学号:201241402128 专业班级: 12级计算机科学与技术1班 时间: 地点: ====================================================================== 实验题目: 定时器组件实验 实验目的: 了解CC2530的定时器; 学会使用CC2530芯片的定时器 三、 实验环境 1、实验箱中的基站 烧录线一根 四、实验步骤 将基站同电脑用烧录线连接好,打开基站的开关; 打开Cygwin开发环境; 3 . 在Cygwin界面中执行 cd apps/Demos/Basic/Timer,进入到实验目录下; 4.在 LED实验目录下执行 make antc5 install 进行编译和烧录; 5. 实验现象为蓝灯1秒闪烁一次,黄灯3秒闪一次 五、实验报告内容 在Cygwin中进入到Timer实验目录,并在Timer实验目录下编译和烧录: 实验思考:通过定时器让蓝色灯闪烁,并且闪烁三次后停止闪烁。 解: 实验源程序的代码为: #define DBG_LEV 5 module TimerLedM { uses interface Boot; /* Timer为系统接口 TMilli指明了定时器的精度为毫秒 */ uses interface TimerTMilli as Timer1; /* as关键字为接口别名 */ uses interface TimerTMilli as Timer2; } implementation { /** 任务: 切换黄色LED灯 */ task void ToggleLedYellow() { LED_YELLOW_TOGGLE; } /** 启动事件处理函数,在TimerLed.nc 已经关联到MainC.Boot接口 系统启动后会调用此函数 */ event void Boot.booted() { /** 定时器 1: 持续工作,每隔1s触发一次 */ call Timer1.startPeriodic(1000); /** 定时器 2: 持续工作,每隔3s触发一次*/ call Timer2.startPeriodic(5000); } /** 定时器 1的事件处理函数 */ event void Timer1.fired() { /** 事件处理中直接切换蓝色LED灯 */ ADBG(5, led blue toggle.\r\n); LED_BLUE_TOGGLE; } /** 定时器 2的事件处理函数 */ event void Timer2.fired() { ADBG(5, led yellow toggle.\r\n); post ToggleLedYellow(); } } 为定时器1的处理事件加上一个条件判断,修改后代码为: /** 定时器 1的事件处理函数 */ event void Timer1.fired() { i++; /**上面已定义了一个整型i*/ /** 事件处理???直接切换蓝色LED灯 */ ADBG(5, led blue toggle.\r\n); LED_BLUE_TOGGLE; if(i3){ LED_BLUE_OFF; } 即可实现实验思考的现象 六、实验心得总结 这次实验在处理实验思考的题目修改代码时用了很久时间,表明自己在算法思想上还有待加强。

文档评论(0)

1亿VIP精品文档

相关文档