TinyOS学习笔记3 --Blink

TinyOS学习笔记3

5.TinyOS2.1.1应用 程序举例:Blink

1.导入TinyOS例子

File->New->Example->选择TinyOS Example,配置如下:

Projete Name:MyBlink

Environment: TinyOS Unix Wrapper 2

Example: Blink

Targer: telosb

2.参考Blink例子,建立自己的TestBlink进行分析,我们的程序只让一个灯闪烁。

File->New->Project->TinyOS Project

Project Name:TestBlink

Target:telosb

3.src->New->Module->Name of new Module:BlinkC

  Moduule的含义:模块实现应用程序的代码,实现一个或多个接口。

在模块中添加接口,供configuration来调用。

本程序的源代码如下:

#include "Timer.h"  //导比入头文件



module BlinkC @safe(){ //@safe的含义:?????

       uses interface Timer as Timer0; //Timer接口,必须实现

       uses interface Leds;//Led灯的接口

       uses interface Boot;//启动接口

}



//接口的实现

implementation{

   //自动生成

       event void Timer0.fired(){

              // TODO Auto-generated method stub

      //输出信息,在tossim中显示

              dbg("BlinkC", "Timer 0 fired @ %s.\n", sim_time_string());

      //使led灯改变

      call Leds.led0Toggle();

       }



       event void Boot.booted(){

              // TODO Auto-generated method stub

      //时间周期为250毫秒

              call Timer0.startPeriodic(250);

       }

}



3.src->New->configuration->Name of new Configuration:BlinkAppC

Configuration的含义:配置是将组件装配起来的组件,将各个组件使用的接口与其他组件提供的接口连接在一起。

components的含义: 各个组件连接形成nesC的程序,组件是由各个模块组成的。

代码如下:

//配置

configuration BlinkAppC{

      

}

implementation{

      

    //声明各个组件

        components MainC, BlinkC, LedsC;

    components new TimerMilliC() as Timer0;

   

    //连接各个组件的接口

    BlinkC -> MainC.Boot;

    BlinkC.Timer0 -> Timer0;

    BlinkC.Leds -> LedsC;

      

}



4.左侧选中项目->右键->Properties->TinyOS Build->1.Application->选中BlinkAppC.nc->OK

5.编译的程序。选中项目,Run->Run As->TinOS Build



6.在TinyOS中生成帮助文档,生成Blink的文档

1.打开终端

2. cd /opt/ tinyos-2.1.1/apps/Blink/

3.make docs

  我们用的命令为 make telosb docs

4.在TinyOS-2.1.1中生成目录 doc

5.doc->nesdoc->telosb 此目录为我们生成的目录

6.点击index.html即可查看帮助文档,可以看到引用的各个组件和接口。

你可能感兴趣的:(TinyOS)