TinyOS操作系统开发技术及实践课件实践2nesC语言基础.ppt

TinyOS操作系统开发技术及实践课件实践2nesC语言基础.ppt

实践2 nesC语言基础 实践指导 ? 实践2.G.1   用随机数模拟数据定时采集,并点亮LED。   【分析】   (1) 随机数生成,需要用到Random接口以及提供该接口的RandomC组件。   (2) 定时功能,需要用到Timer接口以及提供该接口的TimerMilliC组件。   (3) ?LED控制使用Leds接口以及提供该接口的LedsC组件。 【参考解决方案】   1.程序目录建立   在cygwin的“opt/mytinos/apps/”目录下建立“RandomToLed”目录。   2.程序设计   在“opt/mytinos/apps/RandomToLed/”目录下建立3个文件:   RandomToLedC.nc:程序核心应用模块。   RandomToLedAppC.nc:程序顶层配件。   Makefile:make脚本文件。 (1) 编写RandomToLedC.nc文件,代码如下: module RandomToLedC { uses { interface Boot; interface Leds; interface Random; interface TimerTMilli as Timer; } } implementation { //采集数据的任务   (3) 编写Makefile文件,代码如下:    COMPONENT=RandomToLedAppC    include $(MAKERULES)   3.编译、下载至设备中,观察实验结果   (1) 连接好硬件设备,在打开Cygwin后,进入 “opt/mytinos/apps/RandomToLed/”目录,在命令行上运行“make cc2530 install”命令。执行结果如图S2-1所示,表示程序已经编译成功,并下载至设备内。 图S2-1 编译下载程序   (2) 观察执行结果,将看到LED0、LED1和LED2在闪速。 知识拓展 ? nesC编程约定   (1) 命名约定。   nesC源文件的扩展名是“.nc”。   文件名与文件内定义的接口名或组件名一致。   应当使用公共组件而不是直接使用私有组件。   公共组件应当带有后缀“C”,私有组件应带有后缀“P”。   接口名不能以“C”或“P”结尾。   如果接口和组件名相关(组件提供接口),除了后缀(“C”或“P”)之外,两者应当采用相同的命名。   接口中的命令应当以“动词”命名,事件以“动词的过去式”命名(如booted、fired)。   分阶段接口中的命令和相关的事件应该分别以“动词”和“动词+Done”命名。   模块内部变量以名词命名。   (2) 编程约定。   耗时的程序和密集计算的程序应该使用分阶段操作和任务来实现。   被多个nc文件使用的宏定义应该在头文件中用#define定义,并且使用#include包含该头文件。   对参数化接口进行连接时应当使用unique()或uniqueCount()函数实例化接口,而不是使用自定义的常数。 * 实践指导 知识拓展 *

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档