赞
踩
ADC(Analog to Digital Converter)模数转换器。现实生活中的所有属性(如温度、湿度、光照强度等)都是连续的,即为模拟信号;而单片机或电子计算机所能识别的信号都是离散的数字信号。此时,若是需要使用现实世界中的各种属性,就需要一种设备将模拟信号转换为数字信号,它就是模数转换器。
ADC 主要用于将模拟量转换成数字量,从而便于存储与计算等。
ADC 的主要技术参数有:
ADC物理连线示意图
头文件路径:base/iothardware/peripheral/interfaces/inner_api/iot_adc.h
接口函数 | 描述 |
---|---|
hi_u32 hi_adc_read(hi_adc_channel_index channel, hi_u16 *data, hi_adc_equ_model_sel equ_model,hi_adc_cur_bais cur_bais, hi_u16 delay_cnt); | ADC读操作 |
hi_float hi_adc_convert_to_voltage(hi_u16 data); | 将ADC读取到的码字转换为电压 |
//代码功能:定义 GPIO_04 号口为 ADC1 模式以及 ADC 相关参数,最后进行读操作。
#include "iot_adc.h"
// HI_ADC_CHANNEL_1 通道编号
// HI_ADC_EQU_MODEL_8 平均算法模式
// HI_ADC_CUR_BAIS_DEFAULT 模拟电源控制,自动识别模式
// 0xff 采样延迟时间,取值为 0~0xFF0 之间
hi_adc_read(HI_ADC_CHANNEL_1,&data, HI_ADC_EQU_MODEL_8, HI_ADC_CUR_BAIS_DEFAULT,0xff);
在HDF框架中,同类型设备对象较多时(可能同时存在十几个同类型配置器),若采用独立服务模式,则需要配置更多的设备节点,且相关服务会占据更多的内存资源。相反,采用统一服务模式可以使用一个设备服务作为管理器,统一处理所有同类型对象的外部访问(这会在配置文件中有所体现),实现便捷管理和节约资源的目的。ADC模块即采用统一服务模式(如图2所示)。
ADC模块各分层的作用为:
接口层:提供打开设备,写入数据,关闭设备的能力。
核心层:主要负责服务绑定、初始化以及释放管理器,并提供添加、删除以及获取控制器的能力。
适配层:由驱动适配者实现与硬件相关的具体功能,如控制器的初始化等。
在统一模式下,所有的控制器都被核心层统一管理,并由核心层统一发布一个服务供接口层,因此这种模式下驱动无需再为每个控制器发布服务。
图 2 ADC统一服务模式结构图
ADC模块适配包含以下四个步骤:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。