1. 实验CC2530平台上电源管理与休眠

实验目的:

  1. 加深和巩固学生对于TinyOS编程方法的理解和掌握
  2. 让学生初步的认识TinyOS编程的基础和简单的程序编写
  3. 学生通过本实验能够初步的了解和掌握TinyOS编程的整个过程
  4. 提高学生的上机和编程过程中处理具体问题的能力

实验要求:

  1. 实验要求自己独立的完成;
  2. 编写和调试过程中出现的问题要做好记录,并事后总结到报告中
  3. 实验程序调试完成后, 用给定的平台进行测试,由老师检查测试结果,并给予相应的成绩
  4. 在实验报告中回答LedsC,和Leds分别是什么。请在该框架下增加Led频闪命令,即将Led频闪功能以Led接口中的命令函数形式实现。
  5. 实验完成后,要上交实验报告。

实验内容:

  1. 开发一个新的应用,节点每一分种工作5秒,以PM2模式休眠55秒。在工作期间,控制LED以1秒为周期闪烁。以下述顺序完成这个新应用的开发。
    1. 首先使得应用能够以1秒为周期控制LED闪烁;
    2. 然后在上述基础上加入休眠功能。
    3. 在实验报告中分别给出上述两个阶段的源码。

实验代码

(1)配置文件MySleepAppC.nc:

configuration MyLEDAppC

{ }

implementation

{

components MySleepAppM as App;

components MainC;

components LedsC;

components McuSleepTimerC ;

components new TimerMilliC() as Timer0;

App.Boot -> MainC.Boot;

App.SleepTimerAlarm -> McuSleepTimerC;

App.Leds->LedsC;

App.Timer0->Timer0;

}

(2)模块文件MySleepAppM.nc:

module MySleepAppM

{

uses interface Boot;

uses interface Alarm<T32khz, uint32_t> as SleepTimerAlarm;

uses interface Timer<TMilli>as Timer0;

uses interface Leds;

}

implementation

{

uint8_t i = 0;

void set_powermode(int mode)//设计电源模式

{

int j;

if(mode < 4)

{

SLEEPCMD |=mode;

PCON = 1;//进入sleepcmd 制定的电源模式,通过中断打断

for(j = 0 ; j< 4 ; j ++);

}

else

PCON = 0;//系统唤醒

}

task void SleepTask()

{

EA = 1;

call SleepTimerAlarm.start(1024*10);

set_powermode(2);//设置电源模式2

}

event void Boot.booted()

{

call Leds.led0On();

call Timer0.startPeriodic(1024);

}

event void Timer0.fired()

{

i++;

if(i<=5)

{

if(i==5)

{

i = 0 ;

post SleepTask();

}

}

call Leds.led0Toggle();//切换led状态

}

async event void SleepTimerAlarm.fired(){}

}

(3) Makefile 编译文件

COMPONENT=MySleepAppC

include $(MAKERULES)

实验环境:

  1. 上位机操作系统为WindowsXP,在Cygwin环境下编译
  2. 集成开发环境为Notepad++

 

 

实验报告人:木舟 报告时间:2018.11.16

第一次实验: CC2530平台上电源管理与休眠的更多相关文章

  1. 实验三 CC2530平台上CC2530平台上定时器组件的

    实验三 CC2530平台上CC2530平台上定时器组件的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步掌握CC2530定时器的PWM功能,及其TinyOS ...

  2. 网络对抗第一次实验——PC平台逆向破解(5)M

    网络对抗第一次实验--PC平台逆向破解(5)M 实践一 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 操作步骤: 获取实验用文件pwn1,复制,复制出来的文件改名为20155 ...

  3. 使用VS中自带的一键打包功能将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理

    本章将和大家简单分享下如何使用VS中自带的一键打包功能将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理. 一.注册并登录NuGet平台 NuGet官网:http ...

  4. 第七次实验:CC2530平台上多跳通信的TinyOS编程

    module  P2MM { uses interface Boot; uses interface Timer<TMilli> as Timer0; uses interface Spl ...

  5. (转)在Windows平台上安装Node.js及NPM模块管理

    本文转载自:http://www.cnblogs.com/seanlv/archive/2011/11/22/2258716.html 之前9月份的时候我写了一篇关于如何在Windows平台上手工管理 ...

  6. 2、在uboot上实现电源管理

    tar xjf u-boot-1.1.6.tar.bz2 cd u-boot-1.1.6 patch -p1 < ../u-boot-1.1.6_jz2440.patch make 100ask ...

  7. 在Windows平台上安装Node.js及NPM模块管理

    1. 下载Node.js官方Windows版程序:http://nodejs.org/#download    从0.6.1开始,Node.js在Windows平台上提供了两种安装方式,一是.MSI安 ...

  8. 20135208 20135212 LINUX第一次实验报告

    北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全系统设计基础                     班级: 201352 姓名:池彬宁 贺邦 学号:2013521 ...

  9. 信息安全系统设计基础第一次实验报告 20135201&&20135306&&20135307

    信息安全系统设计基础实验 班级: 201353 姓名:张忻 张嘉琪 黄韧 学号:20135301 20135307 20135306 实验日期:2015.11.10 实验名称: S3C2410的lin ...

随机推荐

  1. js实现按钮开关.单机下拉菜单

    通过onclick单击事件,实现效果,代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf- ...

  2. html入门1

    1.HTML超文本标记语言,(Hypertext Markup Language),通过一段内容定义为标题,段落或者图像等,从而让该内容具有结构以及含义 2.W3C:万维网联盟(World Wide ...

  3. array_diff()

    array_diff()函数定义和用法 array_diff() 函数返回两个数组的差集数组.该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值. 在返回的数组中,键名保持不变. 提示 ...

  4. SpringBoot项目搭建与打包

    一.环境准备 本地java环境jdk1.8 Maven版本3.5.2 IDE工具idea2017 二.SpringBoot微服务搭建 1.点击File >> New >> Pr ...

  5. python之路-python2.x与python3.x区别

    Python崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. Python2.x 与 Python3.x的区别: python2.x:源码混乱,重复代码较多,冗余. python3.x:源码规范,崇 ...

  6. 活代码LINQ——02

    一.复习基础——属性与实例变量 'Fig. 4.8:GradeBookTest.vb 'Create and manipulate a GradeBook object. Module GradeBo ...

  7. 阶段02JavaWeb基础day02&03JavaScript

    javascript知识体系 ECMAScript javascript与html结合方式 内部: <script type="text/javaScript">*** ...

  8. LINQ Expresstion Tree 表达式树

    Expression trees represent code in a tree-like data structure, where each node is an expression, for ...

  9. transfer model derived to fk model format

    It should be noted that when using fk, the definition of model format is as belows: 1: 2: when using ...

  10. 图片上传js

    var imgURL; function getImgURL(node) { try{ var file = null; if(node.files && node.files[0] ...