实验 CC2530平台上ADC组件的TinyOS编程

实验目的:

  1. 加深和巩固学生对于TinyOS编程方法的理解和掌握
  2. 让学生初步掌握传感器的ADC组件应用方法
  3. 学生通过本实验能够初步的了解和掌握CC2530平台上传感器的连接方法,及TinyOS编程方法
  4. 提高学生的上机和编程过程中处理具体问题的能力

实验要求:

  1. 实验要求自己独立的完成;
  2. 编写和调试过程中出现的问题要做好记录,并事后总结到报告中
  3. 实验程序调试完成后, 用给定的平台进行测试,由老师检查测试结果,并给予相应的成绩
  4. 实验完成后,要上交实验报告。

实验内容:

  1. 开发一个新的应用,每秒钟获取一次传感数据。以下述顺序完成这个新应用的开发。
    1. 首先使得应用能够以1秒为周期获取电压及芯片内部温度;
    2. 然后在上述基础上通过光敏传感器获取光照强度值。
  2. 在实验报告中分别给出上述两个阶段的源码。

实验代码:

(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)

实验环境:

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

 

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

实验五 CC2530平台上ADC组件的TinyOS编程的更多相关文章

  1. 实验四 CC2530平台上UART组件的TinyOS编程

    实验四 CC2530平台上UART组件的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步掌握CC2530的UART.及其TinyOS编程方法 学生通过本实验 ...

  2. 第二次实验:CC2530平台上GPIO组件的TinyOS编程

    实验二 CC2530平台上GPIO组件的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生理解和掌握CC2530的GPIO及外部中断,及其TinyOS编程方法 学 ...

  3. 实验六 CC2530平台上P2P通信的TinyOS编程

    实验六 CC2530平台上P2P通信的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步的掌握射频通信TinyOS编程方法 学生通过本实验应理解TinyOS中 ...

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

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

  5. 第一次实验: CC2530平台上电源管理与休眠

    实验一 CC2530平台上电源管理与休眠 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步的认识TinyOS编程的基础和简单的程序编写 学生通过本实验能够初步的了解和掌握Ti ...

  6. 2017-2018-2 1723《程序设计与数据结构》实验四 & 实验五 & 课程总结 总结

    作业地址 实验四作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1943 提交情况如图: 实验五作业:https://edu ...

  7. 2017-2018-2 20155228 《网络对抗技术》 实验五:MSF基础应用

    2017-2018-2 20155228 <网络对抗技术> 实验五:MSF基础应用 1. 实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需 ...

  8. GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。

    1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便 ...

  9. 2017-2018-2 20155225《网络对抗技术》实验五 MSF基础应用

    2017-2018-2 20155225<网络对抗技术>实验五 MSF基础应用 ms08_067 用search命令,搜索与ms08_067相关的模块,如图: 找到了对应的攻击模块expl ...

随机推荐

  1. View事件体系

    View事件体系 文章目录 View事件体系 一.Android View基础知识 1.1 View简介 1.2 View分类 1.3 View的结构 1.4 View的坐标 1.4.1 Androi ...

  2. 关于在UNIcode环境下得TCHAR转string类型以及string转TCHAR

    using namespace System::Text: String ^TCHARtoStr(TCHAR *temp) //TCHAR转String { array<unsigned cha ...

  3. rebar3自动编译

    功能:修改完代码可以自动编译加载到VM中 必须安装的软件: Linux: inotify  链接https://github.com/rvoicilas/inotify-tools/wiki 配置: ...

  4. MongoDB的数据库导出和导入以及备份

    数据库的导出 mongoexport -d 数据库名 -c 集合名 -o 导出文件的保存地址及保存文件名.json --type json 数据库的导入 mongoimport -d 数据库名 -c ...

  5. Linux命令练习

    1.开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语 2.使用快捷键切换到虚拟终端2,使用普通用户身份登录,查看系统提示符 3. 使用命令退出虚拟终端2上登录的用户 ...

  6. Forth 内部解释程序工作流程

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  7. Touch事件分发源码解析

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 以下源码基于Gingerbread 2.3.7 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.先看ViewGroup的di ...

  8. F2833x 调用DSP函数库实现复数的FFT的方法

    转载自:http://blog.csdn.net/aeecren/article/details/67644363:个人觉得写的很详细,值得一看 在数字信号处理中,FFT变换是经常使用到的,在DSP中 ...

  9. nodejs03-GET数据处理

    数据请求:--- 前台:form ajax jsonp 后台:一样 请求方式: 1.GET 数据在URL中 2.POST 数据在请求体中 请求数据组成: 头--header:url,头信息 身子--c ...

  10. cv2.findContours

    Layout of the output array image is incompatible with cv::Mat (step[ndims-1] != elemsize or step[1] ...