利用Timer的LED控制优质PPT.pptx
- 文档编号:15644632
- 上传时间:2022-11-10
- 格式:PPTX
- 页数:11
- 大小:1.14MB
利用Timer的LED控制优质PPT.pptx
《利用Timer的LED控制优质PPT.pptx》由会员分享,可在线阅读,更多相关《利用Timer的LED控制优质PPT.pptx(11页珍藏版)》请在冰豆网上搜索。
在BlinkTimer.nc中,为了BlinkTimer例题的运行,声明了MainC,BlinkTimerM,LedsC,newTimerMilliC()等4个组件。
57:
连接下层组件的接口和模块文件的接口。
MainC和BlinkTimerM.Boot接口连接后,连接在BlinkTimerM中使用的Leds接口与LedsC。
并且,连接TimerMilliC组件的Timer接口和BlinkTimerM的Timer接口。
如前所述,当接口的原型名称相同时,可以省略,在以上文件中都是被省略的情况。
(5,6,7行)1:
configurationBlinkTimer2:
3:
implementation4:
componentsMainC,BlinkTimerM,LedsC,newTimerMilliC();
5:
BlinkTimerM.Boot-MainC;
/在MainC.Boot中Boot被省略的状态6:
BlinkTimerM.Leds-LedsC;
/在LedsC.Leds中Leds被省略的状态7:
BlinkTimerM.Timer-TimerMilliC;
/Timer被省略的状态8:
HANBACKELECTRONICSCO.,LTD.利用利用TimerTimer的的LEDLED控制控制2022-11-102022-11-1055TimerMilliC情况时,可以向多个组件提供独立的定时器。
像在理论篇章中所学一样,阐述了从多个组件同时被使用的特别组件被声明为generic,使用时通过保留字new使用。
如在第4行代码中所示,TimerMillic与其它组件不同,使用保留字new的理由是由于TimerMillic组件是generic组件。
左侧表格整理显示了Timer接口函数。
(startOneShot(uint32_tdt)函数和startPeriodic(uint32_tdt)函数使用最多)commanduint32_tgetdt()返回设定的定时器的周期。
commanduint32_tgetNow()返回当前时间。
commanduint32_tgett0()返回定时器被调用的时间t0。
(从t0时间起经过设定时间后,事件发生。
)commandboolisOneShot()确认是否是通过一次调用而结束的定时器commandboolisRunning()确认当前定时器是否已被设定,并在运行中commandboolstartOneShot(uint32_tdt)Dt时间后,使事件发生一次commandboolstartOneShot(uint32_tt0,uint32_tdt)经过t0+dt时间后,使事件发生。
commandboolstartPeriodic(uint32_tdt)以dt时间作为周期,持续重复发生事件。
commandboolstartPeriodic(uint32_tt0,uint32_tdt)从t0后起,以dt为周期反复使事件发生commandvoidstop()使当前进行中的timer停止。
HANBACKELECTRONICSCO.,LTD.利用利用TimerTimer的的LEDLED控制控制BlinkTimerM.nc2022-11-102022-11-106617:
声明要使用的接口,implementation部分记录了与实际运行相关的内容。
4:
Timer接口内的TMilli参数表示当前Timer以ms为单位。
911:
如果TinyOS完成了开始准备,依靠MainC组件,Boot.booted()函数被调用。
在booted()事件函数中,为了每隔1秒反复运行,调用Timer.startPeriodic(1000)。
通过该函数,每1000ms(1秒),TTimer.fired()event函数被周期性地调用。
1214:
在Timer.fired事件函数中,使led0(Red)Toggle,使红色LED每隔1秒周期进行闪烁。
1:
moduleBlinkTimerM2:
uses3:
interfaceBoot;
interfaceTimer;
interfaceLeds;
6:
7:
8:
implementation9:
eventvoidBoot.booted()10:
callTimer.startPeriodic(1000);
11:
12:
eventvoidTimer.fired()13:
callLeds.led0Toggle();
14:
15:
HANBACKELECTRONICSCO.,LTD.利用利用TimerTimer的的LEDLED控制控制准备物品准备物品=HostPC,节点1个,FlashProgrammer工具,下载线=实习方法实习方法2022-11-102022-11-1077BlinkTimerBlinkTimer实习首先,运行cygwin。
如下输入,移动到例题文件夹中。
cd/opt/tinyos-2.x/contrib/cc2431cdBlinkTimer现在输入makecc2431,进行编译。
编译后,build/cc2431文件夹被创建,在该文件夹内生成了app.hex文件。
HANBACKELECTRONICSCO.,LTD.利用利用TimerTimer的的LEDLED控制控制将编译的将编译的hex文件下载到节点中文件下载到节点中2022-11-102022-11-1088首先,将要下载的HBE-Ubi-CC2431节点的USBMCU开关移向MCU一侧,然后通过USB线与PC连接。
接下来,单击桌面上的SmartRFProg.exe快捷方式图标,FlashProgrammer运行后,画面将如下图所示。
HANBACKELECTRONICSCO.,LTD.利用利用TimerTimer的的LEDLED控制控制2022-11-102022-11-1099由于一个HBE-Ubi-CC2431节点已与PC连接,因此在此FlashProgrammer的初始画面上将如图所示以蓝色行显示哪个节点与PC连接。
现在,在Flash路径输入行中单击按钮,选择刚才编译的例题的app.hex文件。
HANBACKELECTRONICSCO.,LTD.利用利用TimerTimer的的LEDLED控制控制2022-11-102022-11-101010如果设定了要下载的hex文件,接下来单击FlashProgrammer下端的“Performaction”按钮。
如果单击此按钮,所选的hex文件将会通过C8051F320被下载到cc2431芯片中。
HANBACKELECTRONICSCO.,LTD.利用利用TimerTimer的的LEDLED控制控制2022-11-102022-11-101111u实习结果实习结果通过按照上述顺序的实习,对利用节点的Timer的LED控制进行理解,通过实际实习,确认每隔1秒RedLED进行on/off变换,从而可以熟知LED运行及Timer的使用方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 Timer LED 控制