#ifndef	__BSP_ADC_H__
#define __BSP_ADC_H__
/*********************************************************************
 * INCLUDES
 */
#include <stdbool.h>
#include <stdint.h>
#include <string.h>
#include "sdk_common.h"
#include "SEGGER_RTT.h"
#include "usr_config.h"
#include "nrf_gpio.h"
#include "nrf_pwr_mgmt.h"
#include "nrf_drv_saadc.h"
/*********************************************************************
 * DEFINITIONS
 */
 
#define CHANNEL_MAX												8 														//通道总数量
 
//ERROR CODE
#define ADC_OP_SUCCESS										0x00													//adc操作成功
#define ADC_ERR_INIT_PIN									0x01													//该引脚已初始化
#define ADC_ERR_INIT_CHANNEL							0x02													//该通道已初始化
#define ADC_ERR_INIT_CONGESTION						0x03													//有效通道已全部初始化
#define ADC_ERR_REMOVE_PIN_CHANNEL				0x04													//移除通道和引脚失败
#define ADC_ERR_READ_NO_CHANNEL						0x05													//无配置通道，读取失败
#define ADC_ERR_READ_TIMEOUT							0x06													//读取adc超时
#define ADC_ERR_READ_FAIL									0x07													//读取adc失败
#define ADC_ERR_TRIGGER_FAIL							0x08													//触发adc失败
/*********************************************************************
 * STRUCTION
 */
typedef void (*bsp_adc_sample_notify_cb)(int16_t *p_adc_value);
/*********************************************************************
 * API
 */
 
 
 
//初始化ADC引脚和通道
uint32_t ADC_SetPinChannel(uint32_t pin, uint32_t channel,nrf_gpio_pin_pull_t pin_pull);
//移除已初始化ADC引脚和通道
uint32_t ADC_RemovePinChannel(uint32_t pin, uint32_t channel);
//ADC触发采样
uint32_t ADC_Sample(bsp_adc_sample_notify_cb cb);
//开启ADC，与Disable成对出现
void ADC_Enable(void);
//禁用ADC
void ADC_Disable(void);

#endif
















