140 lines
4.4 KiB
C
140 lines
4.4 KiB
C
/*******************************************************************************
|
||
* @Copyright (c) :(C)2020, Qingdao ieslab Co., Ltd
|
||
* @FileName :hc32_adc_driver.h
|
||
* @Author :Kv-L
|
||
* @Version :V1.0
|
||
* @Date :2020年7月1日 17:57:05
|
||
* @Description :电压转换范围:0~2.5V; 最大连续转换次数:80次
|
||
*******************************************************************************/
|
||
|
||
/*********************************VREFINT***************************************
|
||
* typ voltage :1.212V
|
||
* Min ADC sampling time : 4us
|
||
*
|
||
*******************************************************************************/
|
||
/*************************external channels*************************************
|
||
* 采样电容:CADC = 5pF;
|
||
* 允许最大外部输入电阻:RAIN = 50KΩ;
|
||
* 内部电阻:RADC = ?;
|
||
* 取60RC = 15us经测试足够给采样电容充满电。
|
||
* 外部输入通道以最小采样时间15us计算。
|
||
*******************************************************************************/
|
||
|
||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||
#ifndef __UWater_ADC_DRIVER_H
|
||
#define __UWater_ADC_DRIVER_H
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
/* Includes ------------------------------------------------------------------*/
|
||
#include "sys_config.h"
|
||
#include "ddl.h"
|
||
#include "type.h"
|
||
|
||
/* Exported types ------------------------------------------------------------*/
|
||
|
||
/* Exported constants --------------------------------------------------------*/
|
||
|
||
/* Exported macro ------------------------------------------------------------*/
|
||
/*ADCs to use*/
|
||
|
||
/*External analog input channel selection*/
|
||
#if (HARDWARE_VERSION==0x14)//方壳表
|
||
#define ADC_IN0 0 //PA00 //use:1 ;not use:0
|
||
#define ADC_IN1 0 //PA01
|
||
#define ADC_IN2 0 //PA02
|
||
#define ADC_IN3 0 //PA03
|
||
#define ADC_IN4 0 //PA04
|
||
#define ADC_IN5 1 //PA05
|
||
#define ADC_IN6 0 //PA06
|
||
#define ADC_IN7 0 //PA07
|
||
#define ADC_IN8 0 //PB00
|
||
#define ADC_IN9 0 //PB01
|
||
#define ADC_IN10 1 //PC00
|
||
#define ADC_IN11 0 //PC01
|
||
#define ADC_IN12 1 //PC02
|
||
#define ADC_IN13 1 //PC03
|
||
#define ADC_IN14 0 //PC04
|
||
#define ADC_IN15 0 //PC05
|
||
#define ADC_IN16 0 //PB02
|
||
#define ADC_IN17 0 //PB10
|
||
#define ADC_IN18 0 //PB11
|
||
#define ADC_IN19 0 //PB12
|
||
#define ADC_IN20 0 //PB13
|
||
#define ADC_IN21 0 //PB14
|
||
#define ADC_IN22 0 //PB15
|
||
#define ADC_IN23 0 //PE15
|
||
#define ADC_IN24 0 //PE14
|
||
#define ADC_IN25 0 //PE13
|
||
|
||
#elif (HARDWARE_VERSION==0x18)//圆壳表
|
||
#define ADC_IN0 0 //PA00 //use:1 ;not use:0
|
||
#define ADC_IN1 0 //PA01
|
||
#define ADC_IN2 0 //PA02
|
||
#define ADC_IN3 0 //PA03
|
||
#define ADC_IN4 0 //PA04
|
||
#define ADC_IN5 0 //PA05//T1_ADC_MCU
|
||
#define ADC_IN6 0 //PA06
|
||
#define ADC_IN7 1 //PA07
|
||
#define ADC_IN8 0 //PB00
|
||
#define ADC_IN9 0 //PB01
|
||
#define ADC_IN10 1 //PC00//BAT_CHECK_MCU
|
||
#define ADC_IN11 0 //PC01
|
||
#define ADC_IN12 1 //PC02//NB_PSM_CHECK
|
||
#define ADC_IN13 1 //PC03//VALVE_ADC_V_MCU
|
||
#define ADC_IN14 0 //PC04
|
||
#define ADC_IN15 0 //PC05
|
||
#define ADC_IN16 0 //PB02
|
||
#define ADC_IN17 0 //PB10
|
||
#define ADC_IN18 0 //PB11
|
||
#define ADC_IN19 0 //PB12
|
||
#define ADC_IN20 0 //PB13
|
||
#define ADC_IN21 0 //PB14
|
||
#define ADC_IN22 0 //PB15
|
||
#define ADC_IN23 0 //PE15
|
||
#define ADC_IN24 0 //PE14
|
||
#define ADC_IN25 0 //PE13
|
||
#endif
|
||
|
||
|
||
|
||
|
||
/*Main machine states*/
|
||
#define ADC_IDLE 0
|
||
#define ADC_CFGADC 1
|
||
#define ADC_START 2
|
||
#define ADC_CONV 3
|
||
#define ADC_END 4
|
||
|
||
/*states*/
|
||
#define ADC_OK 0x00
|
||
#define ADC_START_ERROR 0x01
|
||
#define ADC_CONV_TIMEOUT 0x02
|
||
|
||
/*convert result array*/
|
||
#define MIN 0
|
||
#define SUM 1
|
||
#define MAX 2
|
||
#define MINCONVNUM 3
|
||
/*Max conv num*/
|
||
#define MAXCONVNUM 80 //max:86!
|
||
/*adc_timeout*/
|
||
#define ADC_TIMEOUT 100 //单位:us
|
||
/* Exported functions ------------------------------------------------------- */
|
||
void AdcStartConvert( u8 AdcChannel, u32 ConvNum, u32 TimeInterval, u32 *ConvResult, u8 *ConvIfDone);
|
||
void AdcMachineDriver(void);
|
||
u8 AdcIfIdle(void);
|
||
u8 AdcGetStatus(void);
|
||
u8 AdcIfSleep(void);
|
||
void AdcPreSleep(void);
|
||
void AdcWakeSleep(void);
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif /* __UWater_ADC_DRIVER_H */
|
||
|
||
/***************************************************************END OF FILE****/
|