实验五 CC2530平台上ADC组件的TinyOS编程
实验五 CC2530平台上ADC组件的TinyOS编程
实验目的:
- 加深和巩固学生对于TinyOS编程方法的理解和掌握
- 让学生初步掌握传感器的ADC组件应用方法
- 学生通过本实验能够初步的了解和掌握CC2530平台上传感器的连接方法,及TinyOS编程方法
- 提高学生的上机和编程过程中处理具体问题的能力
实验要求:
- 实验要求自己独立的完成;
- 编写和调试过程中出现的问题要做好记录,并事后总结到报告中
- 实验程序调试完成后, 用给定的平台进行测试,由老师检查测试结果,并给予相应的成绩
- 实验完成后,要上交实验报告。
实验内容:
- 开发一个新的应用,每秒钟获取一次传感数据。以下述顺序完成这个新应用的开发。
- 首先使得应用能够以1秒为周期获取电压及芯片内部温度;
- 然后在上述基础上通过光敏传感器获取光照强度值。
- 在实验报告中分别给出上述两个阶段的源码。
实验代码:
(1)配置文件TestAdcC.nc
configuration TestAdcC
{
}
implementation
{
components TestAdcM as App;
components MainC ;
App.Boot -> MainC.Boot;
components PlatformLcdC;
App.Lcd->PlatformLcdC.PlatformLcd;
App.LcdInit->PlatformLcdC.Init;
components new TimerMilliC() as Timer1;
App.Timer1 -> Timer1;
components new AdcC() as Ad;
App.AdControl->Ad;
App.AdRead->Ad;
}
(2)模块文件TestAdcM.nc
#include "ADC.H"
module TestAdcM
{
uses interface Boot;
uses interface PlatformLcd as Lcd;
uses interface Init as LcdInit;
uses interface AdcControl as AdControl;
uses interface Read<int16_t> as AdRead;
uses interface Timer<TMilli> as Timer1;
}
implementation
{
#define VDD 33
uint16_t m_val;
task void CalcVolt()
{
unsigned char s[16];
m_val = ((float)m_val / (float)0x1FFF) *VDD;
sprintf(s, (char*)"%d.%d V", m_val/10, m_val%10);
call Lcd.PutString(60,20,s);
}
event void Boot.booted()
{
call LcdInit.init();
call Lcd.ClrScreen();
call Lcd.FontSet_cn(1,1);
call Lcd.PutString_cn(0,20,"电压为 ");
call AdControl.enable(ADC_REF_AVDD,ADC_12_BIT,ADC_AIN7);
call Timer1.startPeriodic(1024);
call Lcd.FontSet(1,1);
}
event void AdRead.readDone(error_t result, int16_t val)
{
m_val=val;
post CalcVolt();
}
event void Timer1.fired()
{
call AdRead.read();
}
}
(3)makefile 编译文件
COMPONENT=TestAdcC
include $(MAKERULES)
实验环境:
- 上位机操作系统为WindowsXP,在Cygwin环境下编译
- 集成开发环境为Notepad++
实验报告人:木舟 报告时间:2018.11.16
实验五 CC2530平台上ADC组件的TinyOS编程的更多相关文章
- 实验四 CC2530平台上UART组件的TinyOS编程
实验四 CC2530平台上UART组件的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步掌握CC2530的UART.及其TinyOS编程方法 学生通过本实验 ...
- 第二次实验:CC2530平台上GPIO组件的TinyOS编程
实验二 CC2530平台上GPIO组件的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生理解和掌握CC2530的GPIO及外部中断,及其TinyOS编程方法 学 ...
- 实验六 CC2530平台上P2P通信的TinyOS编程
实验六 CC2530平台上P2P通信的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步的掌握射频通信TinyOS编程方法 学生通过本实验应理解TinyOS中 ...
- 实验三 CC2530平台上CC2530平台上定时器组件的
实验三 CC2530平台上CC2530平台上定时器组件的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步掌握CC2530定时器的PWM功能,及其TinyOS ...
- 第一次实验: CC2530平台上电源管理与休眠
实验一 CC2530平台上电源管理与休眠 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步的认识TinyOS编程的基础和简单的程序编写 学生通过本实验能够初步的了解和掌握Ti ...
- 2017-2018-2 1723《程序设计与数据结构》实验四 & 实验五 & 课程总结 总结
作业地址 实验四作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1943 提交情况如图: 实验五作业:https://edu ...
- 2017-2018-2 20155228 《网络对抗技术》 实验五:MSF基础应用
2017-2018-2 20155228 <网络对抗技术> 实验五:MSF基础应用 1. 实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需 ...
- GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。
1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便 ...
- 2017-2018-2 20155225《网络对抗技术》实验五 MSF基础应用
2017-2018-2 20155225<网络对抗技术>实验五 MSF基础应用 ms08_067 用search命令,搜索与ms08_067相关的模块,如图: 找到了对应的攻击模块expl ...
随机推荐
- RuntimeError: Model class app_anme.models.User doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.---python学习错误记录
untimeError: Model class app_anme.models.User doesn't declare an explicit app_label and isn't in an ...
- java接口特性
java接口特性 (1)接口可以被实例化 ,常作为类型使用 (2)实现类必须实现接口的所有方法 ,抽象类除外 (3)实现类可以实现多个几口 java中的多继承 (4)接口中的变量都是静态变量
- 设计模式-builder(构造器模式)
好处: 多个属性时,可以清楚明了知道属性, 重叠构造起器的安全性和JavaBeans模式的可读性 只需要制定需要建造的类型就可以得到他们 实例: public class NutritionFacts ...
- font awesome 页面小图标
font awesome 页面小图标 前段时间做页面,从网上查找资料,发现了一个好用的工具,就是font awesome奥森图标,使用了一下,发现非常方便,而且很灵活,纯css编写,可以和bootst ...
- JS案例六_1:添加城市
使用的相关知识点:对子节点的添加:document.appendClild() 文本节点的创建:document.createTextNode() 元素节点的创建:document.createEle ...
- HashMap jdk1.8 jdk1.7 put改动
之前hashmap处理冲突单纯使用链表法进行链接,1.8中,当一散列值中对应的链表长度超过8个后,会将链表转化为红黑树进行存储. 1.8中源码 public V put(K key, V value) ...
- 断网环境,Python环境迁移
Python刚装好断网了怎么办? wget不管用怎么办? 想把现有的Python环境转移到另外一台机器上怎么办? 这就用到了离线安装 1.创建目录用于存放下载的包,并进入该目录 mkdir lihai ...
- 简单理解 SVM
SVM,中文名叫支持向量机. 在深度学习出现以前,它是数据挖掘的宠儿: SVM具有十分完整的数据理论证明,但同时理论也相当复杂. 初识SVM 同其他分类算法一样,SVM分类也是寻找合适的决策边界,为 ...
- ftp 发布配置
地址:ftp://192.168.26.128/ 存放文件夹:jenkins
- 安装mavlink遇到的问题(future找不到)
从官网下载mavlink(git clone https://github.com/mavlink/mavlink.git) 然后进入mavlink 目录执行 git submodule update ...