英文优美文章,荷兰足球,张翰和郑爽背后的故事
实验二 cc2530平台上gpio组件的tinyos编程
实验目的:
实验要求:
实验内容:
实验代码:
(1)配置文件test gpioc.nc
configuration testgpioc
{ }
implementation
{
components mainc;
components testgpiom as app;
app.boot->mainc.boot;
//cc2530 gpio组件
components hplcc2530generalioc as gpio;
app.okkey->gpio.p0_port[1];
app.led0->gpio.p1_port[1];
app.led1->gpio.p1_port[0];
//定时器组件
components new timermillic() as timer0;
app.timer0->timer0;
}
(2)模块文件testgpiom.nc
module testgpiom
{
uses interface boot;
uses interface timer<tmilli> as timer0; //定时器
uses interface generalio as okkey; //gpio接口
uses interface generalio as led0;
uses interface generalio as led1;
}
implementation
{
uint8_t okvalue; //键值变量
enum {nokey,keydown,keyup};//按键状态
uint8_t okstate; //按键状态变量
task void prokey() {}
event void boot.booted()
{
call okkey.makeinput(); //设置为输入
call led0.makeoutput(); //设置为输出
call led1.makeoutput(); //设置为输出
call led0.clr(); //熄灭led
call led1.clr();
okstate=nokey;
okvalue=1;
call timer0.startperiodic(100); //定时100ms
}
event void timer0.fired()
{
okvalue=call okkey.get();//获取键值
switch(okstate)
{
case nokey:
if(okvalue==0)
okstate=keydown;
break;
case keydown:
if(okvalue==1)
okstate=keyup;
else
call led0.toggle();//切换led状态
break;
case keyup:
if(okvalue==1)
{
okstate=nokey;
call led1.toggle();
}
else
okstate=keydown;
break;
}
}
}
(3)makefile 编译文件
component=testgpioc
include $(makerules)
实验环境:
2. 集成开发环境为notepad++
实验报告人:木舟 报告时间:2018.11.16
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论