最新tinyos操作系统开发技术及实践(西电版实践3平台移植(共34张ppt课件).pptx





《最新tinyos操作系统开发技术及实践(西电版实践3平台移植(共34张ppt课件).pptx》由会员分享,可在线阅读,更多相关《最新tinyos操作系统开发技术及实践(西电版实践3平台移植(共34张ppt课件).pptx(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实践3 平台移植 1 1实践(shjin)3 平台移植 实践(shjin)指导 第一页,共三十四页。实践3 平台移植 2 2实践指导实践指导 实践实践3.G.1ADC驱动的开发。【分析】(1) 通过ADC(数模转换)驱动的开发理解发布平台上驱动开发的一般方法。(2) 根据ADC特点,设计ADC驱动,包括ADC接口、实现接口的模块、提供接口的配件。(3) 编写应用程序,测试ADC驱动。(4) 将ADC驱动移动到平台的驱动目录中。(5) 将驱动目录位置(wi zhi)加入到“.platform”文件中。(6) 重新编译应用程序,测试ADC驱动。第二页,共三十四页。实践3 平台移植 3 3【参考解决
2、方案】【参考解决方案】1程序目录建立程序目录建立在cygwin的“opt/mytinos/apps/”目录下建立“AdTest”目录。2ADC驱动设计驱动设计在“opt/mytinos/apps/AdTest/”目录下建立4个文件:Adc.h:定义与ADC控制相关的宏和常量(chngling)。AdcControl.nc:ADC接口文件。AdcP.nc:实现ADC接口的模块文件。AdcC.nc:ADC配件文件,用于封装AdcP模块,以对外提供ADC的控制。第三页,共三十四页。实践3 平台移植 4 4(1)编写Adc.h文件,代码如下(rxi):/设置ADCCON3寄存器#define ADC_
3、SINGLE_CONVERSION(settings) do ADCCON3 = settings; while(0)/设置ADCCON2寄存器#define ADC_SEQUENCE_SETUP(settings) do ADCCON2 = settings; while(0)/参考电压常量#define ADC_REF_1_25_V 0 x00 #define ADC_REF_P0_7 0 x40 #define ADC_REF_AVDD 0 x80#define ADC_REF_P0_6_P0_7 0 xC0 第四页,共三十四页。实践3 平台移植 5 5/ 分辨率 (精度(jn d):#
4、define ADC_8_BIT 0 x00#define ADC_10_BIT 0 x10#define ADC_12_BIT 0 x20#define ADC_14_BIT 0 x30/ 输入通道#define ADC_AIN0 0 x00 #define ADC_AIN1 0 x01 #define ADC_AIN2 0 x02#define ADC_AIN3 0 x03#define ADC_AIN4 0 x04 #define ADC_AIN5 0 x05#define ADC_AIN6 0 x06#define ADC_AIN7 0 x07第五页,共三十四页。实践3 平台移植 6
5、6#define ADC_AIN0_AIN1 0 x08#define ADC_AIN2_AIN3 0 x09 #define ADC_AIN4_AIN5 0 x0A #define ADC_AIN6_AIN7 0 x0B#define ADC_GND 0 x0C#define ADC_PVR 0 x0D #define ADC_TEMP_SENS 0 x0E #define ADC_VDD_3 0 x0F 第六页,共三十四页。实践3 平台移植 7 7/-/开启ADC连续转换#define ADC_SAMPLE_CONTINUOUS() do ADCCON1 &= 0 x30; ADCCON1
6、 |= 0 x10; while (0)/ 停止(tngzh)ADC的连续转换#define ADC_STOP() do ADCCON1 |= 0 x30; while (0)/初始化单端输入的ADC转换#define ADC_SAMPLE_SINGLE() do ADC_STOP(); ADCCON1 |= 0 x40; while (0)第七页,共三十四页。实践3 平台移植 8 8/设置ADC从通道0开始#define ADC_TRIGGER_FROM_TIMER1() do ADC_STOP(); ADCCON1 &= 0 x10;while (0)/判断转换是否结束(jish)#def
7、ine ADC_SAMPLE_READY() (ADCCON1 & 0 x80)/设置或清除ADC通道#define ADC_ENABLE_CHANNEL(ch) ADCCFG |= (0 x01ch)#define ADC_DISABLE_CHANNEL(ch) ADCCFG &= (0 x01ch)第八页,共三十四页。实践3 平台移植 9 9(2) 编写AdcControl接口(ji ku)代码:interface AdcControl /* *启用ADC. * 参数reference 参考电压 * 参数resolution 精度(分辨率) * 参数input 通道 */ command
8、void enable(uint8_t reference, uint8_t resolution, uint8_t input); /* * 停用ADC */ command void disable();第九页,共三十四页。实践3 平台移植 10 10(3) 编写AdcP模块(m kui),用于实现AdcControl接口,代码如下:#include Adc.h#define ADC_MAX_RETRY 0 x7fffmodule AdcP provides interface Init; provides interface AdcControluint8_t id; provides
9、interface Readuint8_t id;第十页,共三十四页。实践3 平台移植 11 11implementation uint8_t referencesuniqueCount(UNIQUE_ADC_PORT); uint8_t resolutionsuniqueCount(UNIQUE_ADC_PORT); uint8_t inputsuniqueCount(UNIQUE_ADC_PORT); uint8_t counter; command error_t Init.init() uint8_t i; 第十一页,共三十四页。实践3 平台移植 12 12 for (i = 0; i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新tinyos操作系统开发技术及实践西电版实践3 平台移植共34张ppt课件 最新 tinyos 操作系统 开发 技术 实践 西电版 平台 移植 34 ppt 课件

限制150内