第一次实验: CC2530平台上电源管理与休眠
- 实验一 CC2530平台上电源管理与休眠
实验目的:
- 加深和巩固学生对于TinyOS编程方法的理解和掌握
- 让学生初步的认识TinyOS编程的基础和简单的程序编写
- 学生通过本实验能够初步的了解和掌握TinyOS编程的整个过程
- 提高学生的上机和编程过程中处理具体问题的能力
实验要求:
- 实验要求自己独立的完成;
- 编写和调试过程中出现的问题要做好记录,并事后总结到报告中
- 实验程序调试完成后, 用给定的平台进行测试,由老师检查测试结果,并给予相应的成绩
- 在实验报告中回答LedsC,和Leds分别是什么。请在该框架下增加Led频闪命令,即将Led频闪功能以Led接口中的命令函数形式实现。
- 实验完成后,要上交实验报告。
实验内容:
- 开发一个新的应用,节点每一分种工作5秒,以PM2模式休眠55秒。在工作期间,控制LED以1秒为周期闪烁。以下述顺序完成这个新应用的开发。
- 首先使得应用能够以1秒为周期控制LED闪烁;
- 然后在上述基础上加入休眠功能。
- 在实验报告中分别给出上述两个阶段的源码。
实验代码
(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)
实验环境:
- 上位机操作系统为WindowsXP,在Cygwin环境下编译
- 集成开发环境为Notepad++
实验报告人:木舟 报告时间:2018.11.16
第一次实验: CC2530平台上电源管理与休眠的更多相关文章
- 实验三 CC2530平台上CC2530平台上定时器组件的
实验三 CC2530平台上CC2530平台上定时器组件的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步掌握CC2530定时器的PWM功能,及其TinyOS ...
- 网络对抗第一次实验——PC平台逆向破解(5)M
网络对抗第一次实验--PC平台逆向破解(5)M 实践一 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 操作步骤: 获取实验用文件pwn1,复制,复制出来的文件改名为20155 ...
- 使用VS中自带的一键打包功能将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理
本章将和大家简单分享下如何使用VS中自带的一键打包功能将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理. 一.注册并登录NuGet平台 NuGet官网:http ...
- 第七次实验:CC2530平台上多跳通信的TinyOS编程
module P2MM { uses interface Boot; uses interface Timer<TMilli> as Timer0; uses interface Spl ...
- (转)在Windows平台上安装Node.js及NPM模块管理
本文转载自:http://www.cnblogs.com/seanlv/archive/2011/11/22/2258716.html 之前9月份的时候我写了一篇关于如何在Windows平台上手工管理 ...
- 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 ...
- 在Windows平台上安装Node.js及NPM模块管理
1. 下载Node.js官方Windows版程序:http://nodejs.org/#download 从0.6.1开始,Node.js在Windows平台上提供了两种安装方式,一是.MSI安 ...
- 20135208 20135212 LINUX第一次实验报告
北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级: 201352 姓名:池彬宁 贺邦 学号:2013521 ...
- 信息安全系统设计基础第一次实验报告 20135201&&20135306&&20135307
信息安全系统设计基础实验 班级: 201353 姓名:张忻 张嘉琪 黄韧 学号:20135301 20135307 20135306 实验日期:2015.11.10 实验名称: S3C2410的lin ...
随机推荐
- ES6 memo
一.热门问题 介绍redux,主要解决什么问题 是管理应用程序状态的库,解决数据管理和数据通信的问题 Promise.Async有什么区别 Async 更简洁,不需要用 then 连接 Promise ...
- 笨办法33while循环
改了之前的代码,加入while: #coding: utf-8 print("王小狗丑不丑?丑→1:不丑→2") answer = input(">") ...
- 在form表单里上传图片
需要上传多个图片分别上传,本来提供的工具类里上传一张可以form表单对象实现 后台用MultipartFile file var formdata = new FormData($("#in ...
- 拯救者R720安装Ubuntu之后无法连接无线网络
安装Ubuntu后无法连接到无线网络 Ubuntu默认关闭了硬件wifi开关,拯救者R720只有软件开关,所以引起了wifi不可用的问题 使用rfkill list all 命令:0:ideapad_ ...
- linux 安装node.js 和npm
cd /usr/local mkdir nodejs cd nodejs 去https://nodejs.org/en/download/复制安装包地址 wget https://nodejs.org ...
- springMVC控制器,处理器,映射器,适配器
前端控制器DispatcherServlet <!--定义spring mvc 的前端控制器Servlet --><servlet> <!--Servlet的名称--&g ...
- left join on 后and 和 where 的区别
SELECT * FROM student a LEFT JOIN sc b ON a.Sid = b.Sid AND a.Sname="赵雷" 结果:(left join 左连接 ...
- Java中java.util.concurrent包下的4中线程池代码示例
先来看下ThreadPool的类结构 其中红色框住的是常用的接口和类(图片来自:https://blog.csdn.net/panweiwei1994/article/details/78617117 ...
- 学习python及Pygame的安装及运行
Python: 注意勾上Add Python 2.7 to PATH,然后点“Install Now”即可完成安装. 或手动修改环境变量,win7:右击我的电脑->属性->高级->环 ...
- .Net Core+Angular6 学习 第一部分(创建web api)
. 创建.net core web api 1.1 选择一个empty 模式,里面只有简单的2个class 1.2 配置web api 的路由. 1.2.1 打开Startup.cs,首先引用conf ...