1,概述
TG6000A芯片内置一个 12 bits 的模拟数字转换器(ADC),支持 3路外部模拟输入。
2,API参考
2.1 重要枚举、函数指针介绍
2.1.1 HAL_GPADC_CHAN_T枚举
GPADC channel枚举
enum HAL_GPADC_CHAN_T {
HAL_GPADC_CHAN_0 = 0,
HAL_GPADC_CHAN_BATTERY = 1,
HAL_GPADC_CHAN_2 = 2,
HAL_GPADC_CHAN_3 = 3,
HAL_GPADC_CHAN_4 = 4,
HAL_GPADC_CHAN_5 = 5,
HAL_GPADC_CHAN_6 = 6,
HAL_GPADC_CHAN_ADCKEY = 7,
HAL_GPADC_CHAN_QTY,
};
2.1.2 HAL_GPADC_ATP_T枚举
GPADC 采样时间枚举
enum HAL_GPADC_ATP_T {
HAL_GPADC_ATP_NULL = 0,
HAL_GPADC_ATP_125US = 125,
HAL_GPADC_ATP_500US = 500,
HAL_GPADC_ATP_1MS = 1000,
HAL_GPADC_ATP_2MS = 2000,
HAL_GPADC_ATP_5MS = 5000,
HAL_GPADC_ATP_10MS = 10000,
HAL_GPADC_ATP_20MS = 20000,
HAL_GPADC_ATP_30MS = 30000,
HAL_GPADC_ATP_40MS = 40000,
HAL_GPADC_ATP_50MS = 50000,
HAL_GPADC_ATP_60MS = 60000,
HAL_GPADC_ATP_ONESHOT = -1,
};
2.1.3 HAL_ADCKEY_IRQ_T枚举
GPADC 按键ADC中断
enum HAL_ADCKEY_IRQ_T {
HAL_ADCKEY_IRQ_NONE = 0,
HAL_ADCKEY_IRQ_PRESSED = (1 << 0),
HAL_ADCKEY_IRQ_RELEASED = (1 << 1),
HAL_ADCKEY_IRQ_BOTH = (HAL_ADCKEY_IRQ_PRESSED | HAL_ADCKEY_IRQ_RELEASED),
};
2.1.4 HAL_ADCKEY_IRQ_STATUS_T枚举
GPADC 案件ADC 中断状态
enum HAL_ADCKEY_IRQ_STATUS_T {
HAL_ADCKEY_ADC_VALID = (1 << 0),
HAL_ADCKEY_RELEASED = (1 << 1),
HAL_ADCKEY_PRESSED = (1 << 2),
HAL_ADCKEY_ERR0 = (1 << 3),
HAL_ADCKEY_ERR1 = (1 << 4),
};
2.1.5 GPADC 中断函数指针
HAL_GPADC_EVENT_CB_T
typedef void (*HAL_GPADC_EVENT_CB_T)(uint16_t raw_val, HAL_GPADC_MV_T volt);
2.1.6 GPADC 按键中断函数
HAL_ADCKEY_EVENT_CB_T
typedef void (*HAL_ADCKEY_EVENT_CB_T)(enum HAL_ADCKEY_IRQ_STATUS_T irq_status, uint16_t raw_val);
2.2 主要函数介绍
2.2.1 GPADC 开启函数
函数原型:
int hal_gpadc_open(enum HAL_GPADC_CHAN_T channel,
enum HAL_GPADC_ATP_T atp,
HAL_GPADC_EVENT_CB_T cb);
函数功能:开启指定GPADC通道并且设置采样时间与注册回调函数(无法为ADCKEY设置)
- 函数参数:
- channel:GPADC 通道
- atp:采样时间
- cb:回调函数
返回值:
函数原型:
bool hal_gpadc_get_volt(enum HAL_GPADC_CHAN_T ch,
HAL_GPADC_MV_T *volt);
函数功能:读取指定通道ADC的数值并转化为电压值
- 函数参数:
- ch:GPADC通道
- *volt:用于存储ADC读取的电压值
返回值:
函数原型:
int hal_gpadc_close(enum HAL_GPADC_CHAN_T channel);
函数功能:关闭指定GPADC
- 函数参数:
- channel:GPADC通道
返回值:
函数原型:
void hal_gpadc_sleep(void);
-
2.2.5 GPADC唤醒
函数原型:
void hal_gpadc_weakup(void)
-
2.2.6 ADCKEY irq handler设置
函数原型:
void hal_adckey_set_irq_handler(HAL_ADCKEY_EVENT_CB_T cb);
函数功能:为ADCKEY注册回调函数
函数功能:
函数原型:
int hal_adckey_set_irq(enum HAL_ADCKEY_IRQ_T type);
函数功能:设置ADCKEY的irq类型
函数参数:
配置通道、采样时间与回调函数即可