BLE_DCF_TYQ_CH592F/StdPeriphDriver/inc/CH58x_adc.h

401 lines
8.9 KiB
C
Raw Normal View History

2024-12-02 16:26:55 +08:00
/********************************** (C) COPYRIGHT *******************************
2025-02-21 14:38:41 +08:00
* File Name : CH58x_adc.h
2024-12-02 16:26:55 +08:00
* Author : WCH
* Version : V1.2
* Date : 2021/11/17
2025-02-21 14:38:41 +08:00
* Description : head file(ch585/ch584)
2024-12-02 16:26:55 +08:00
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
2025-02-21 14:38:41 +08:00
* Attention: This software (modified or not) and binary are used for
2024-12-02 16:26:55 +08:00
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/
2025-02-21 14:38:41 +08:00
#ifndef __CH58x_ADC_H__
#define __CH58x_ADC_H__
2024-12-02 16:26:55 +08:00
#ifdef __cplusplus
extern "C" {
#endif
#define ROM_CFG_TMP_25C 0x7F014
/**
* @brief adc single channel define
*/
typedef enum
{
CH_EXTIN_0 = 0, // ADC <20>ⲿģ<E2B2BF><C4A3>ͨ<EFBFBD><CDA8> 0
CH_EXTIN_1, // ADC <20>ⲿģ<E2B2BF><C4A3>ͨ<EFBFBD><CDA8> 1
CH_EXTIN_2, // ADC <20>ⲿģ<E2B2BF><C4A3>ͨ<EFBFBD><CDA8> 2
CH_EXTIN_3, // ADC <20>ⲿģ<E2B2BF><C4A3>ͨ<EFBFBD><CDA8> 3
CH_EXTIN_4, // ADC <20>ⲿģ<E2B2BF><C4A3>ͨ<EFBFBD><CDA8> 4
CH_EXTIN_5, // ADC <20>ⲿģ<E2B2BF><C4A3>ͨ<EFBFBD><CDA8> 5
CH_EXTIN_6, // ADC <20>ⲿģ<E2B2BF><C4A3>ͨ<EFBFBD><CDA8> 6
CH_EXTIN_7, // ADC <20>ⲿģ<E2B2BF><C4A3>ͨ<EFBFBD><CDA8> 7
CH_EXTIN_8, // ADC <20>ⲿģ<E2B2BF><C4A3>ͨ<EFBFBD><CDA8> 8
CH_EXTIN_9, // ADC <20>ⲿģ<E2B2BF><C4A3>ͨ<EFBFBD><CDA8> 9
CH_EXTIN_10, // ADC <20>ⲿģ<E2B2BF><C4A3>ͨ<EFBFBD><CDA8> 10
CH_EXTIN_11, // ADC <20>ⲿģ<E2B2BF><C4A3>ͨ<EFBFBD><CDA8> 11
CH_EXTIN_12, // ADC <20>ⲿģ<E2B2BF><C4A3>ͨ<EFBFBD><CDA8> 12
CH_EXTIN_13, // ADC <20>ⲿģ<E2B2BF><C4A3>ͨ<EFBFBD><CDA8> 13
CH_INTE_VBAT = 14, // ADC <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD>ͨ<EFBFBD><CDA8>
CH_INTE_VTEMP = 15, // ADC <20>ڲ<EFBFBD><DAB2>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
2025-02-21 14:38:41 +08:00
CH_INTE_NFC = 16, // NFC <20>ڲ<EFBFBD><DAB2>źż<C5BA><C5BC><EFBFBD>ͨ<EFBFBD><CDA8>
2024-12-02 16:26:55 +08:00
} ADC_SingleChannelTypeDef;
/**
* @brief adc differential channel define
*/
typedef enum
{
CH_DIFF_0_2 = 0, // ADC <20><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> #0-#2
CH_DIFF_1_3, // ADC <20><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> #1-#3
} ADC_DiffChannelTypeDef;
/**
2025-02-21 14:38:41 +08:00
* @brief adc sampling clock, depends on R16_CLK_SYS_CFG[9] = 1/0
2024-12-02 16:26:55 +08:00
*/
typedef enum
{
2025-02-21 14:38:41 +08:00
SampleFreq_8 = 0, // 8M <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5> R16_CLK_SYS_CFG[9]=1ʱ<31><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SampleFreq_8_or_4, // 8/4M <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5> R16_CLK_SYS_CFG[9]=1ʱΪ8M<38><4D><EFBFBD><EFBFBD>֮Ϊ4M<34><4D><EFBFBD><EFBFBD>ͬ
SampleFreq_5_33_or_2_67, // 5.33/2.67M <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
SampleFreq_4_or_2, // 4/2M <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
2024-12-02 16:26:55 +08:00
} ADC_SampClkTypeDef;
/**
* @brief adc signal PGA
*/
typedef enum
{
ADC_PGA_1_4 = 0, // -12dB, 1/4<><34>
ADC_PGA_1_2, // -6dB, 1/2<><32>
ADC_PGA_0, // 0dB, 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ADC_PGA_2, // 6dB, 2<><32>
ADC_PGA_2_ = 0x10, // 6dB, 2<><32>
ADC_PGA_4, // 12dB, 4<><34>
ADC_PGA_8, // 18dB, 8<><38>
ADC_PGA_16, // 24dB, 16<31><36>
} ADC_SignalPGATypeDef;
/**
* @brief Configuration DMA mode
*/
typedef enum
{
ADC_Mode_Single = 0, // <20><><EFBFBD><EFBFBD>ģʽ
ADC_Mode_LOOP, // ѭ<><D1AD>ģʽ
} ADC_DMAModeTypeDef;
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADC <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>
*
* @param d - refer to ADC_SingleChannelTypeDef
*/
#define ADC_ChannelCfg(d) (R8_ADC_CHANNEL = d)
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADC <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
*
* @param d - refer to ADC_SampClkTypeDef
*/
#define ADC_SampClkCfg(d) (R8_ADC_CFG = R8_ADC_CFG & (~RB_ADC_CLK_DIV) | (d << 6))
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADC <EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param d - refer to ADC_SignalPGATypeDef
*/
#define ADC_PGACfg(d) (R8_ADC_CFG = R8_ADC_CFG & (~RB_ADC_PGA_GAIN) | (d << 4))
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У׼ֵ
*
* @param d - У׼ֵ
*/
#define ADC_TempCalibCfg(d) (R8_TEM_SENSOR = R8_TEM_SENSOR & (~RB_TEM_SEN_CALIB) | d)
/**
* @brief <EFBFBD>ⲿ<EFBFBD>źŵ<EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
*
* @param sp - refer to ADC_SampClkTypeDef
* @param ga - refer to ADC_SignalPGATypeDef
*/
void ADC_ExtSingleChSampInit(ADC_SampClkTypeDef sp, ADC_SignalPGATypeDef ga);
/**
* @brief <EFBFBD>ⲿ<EFBFBD>źŲ<EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
*
* @param sp - refer to ADC_SampClkTypeDef
* @param ga - refer to ADC_SignalPGATypeDef
*/
void ADC_ExtDiffChSampInit(ADC_SampClkTypeDef sp, ADC_SignalPGATypeDef ga);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
*/
void TouchKey_ChSampInit(void);
/**
* @brief <EFBFBD>ر<EFBFBD>TouchKey<EFBFBD><EFBFBD>Դ
*/
#define TouchKey_DisableTSPower() (R8_TKEY_CFG &= ~RB_TKEY_PWR_ON)
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
*/
void ADC_InterTSSampInit(void);
/**
* @brief <EFBFBD>ر<EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
*/
#define ADC_DisableTSPower() (R8_TEM_SENSOR = 0)
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD>ص<EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
*/
void ADC_InterBATSampInit(void);
/**
* @brief ADCִ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>
*
* @return ADCת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
uint16_t ADC_ExcutSingleConver(void);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴֵ<EFBFBD>,<EFBFBD><EFBFBD>ȡƫ<EFBFBD><EFBFBD>ֵ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô˺<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡУ׼ֵ
*
* @return ƫ<EFBFBD><EFBFBD>
*/
signed short ADC_DataCalib_Rough(void);
/**
* @brief TouchKeyת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param charg - Touchkey<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>,5bits<EFBFBD><EFBFBD>Ч, t=charg*Tadc
* @param disch - Touchkey<EFBFBD>ŵ<EFBFBD>ʱ<EFBFBD><EFBFBD>,3bits<EFBFBD><EFBFBD>Ч, t=disch*Tadc
*
* @return <EFBFBD><EFBFBD>ǰTouchKey<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
uint16_t TouchKey_ExcutSingleConver(uint8_t charg, uint8_t disch);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param cycle - <EFBFBD><EFBFBD>λΪ 16<EFBFBD><EFBFBD>ϵͳʱ<EFBFBD><EFBFBD>
*/
void ADC_AutoConverCycle(uint8_t cycle);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>DMA<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param s - <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DMA<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param startAddr - DMA <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ַ
* @param endAddr - DMA <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
* @param m - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>DMAģʽ
*/
void ADC_DMACfg(uint8_t s, uint32_t startAddr, uint32_t endAddr, ADC_DMAModeTypeDef m);
/**
* @brief Convert ADC value to temperature(Celsius)
*
* @param adc_val - adc value
*
* @return temperature (Celsius)
*/
int adc_to_temperature_celsius(uint16_t adc_val);
2025-02-21 14:38:41 +08:00
/**
* @brief -12dB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱADC<EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD>ֵת<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ѹ(mV)
*
* @param adc_data - ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*
* @return <EFBFBD><EFBFBD>ѹ(mV)
*/
int ADC_VoltConverSignalPGA_MINUS_12dB(uint16_t adc_data);
/**
* @brief -6dB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱADC<EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD>ֵת<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ѹ(mV)
*
* @param adc_data - ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*
* @return <EFBFBD><EFBFBD>ѹ(mV)
*/
int ADC_VoltConverSignalPGA_MINUS_6dB(uint16_t adc_data);
/**
* @brief 0dB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱADC<EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD>ֵת<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ѹ(mV)
*
* @param adc_data - ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*
* @return <EFBFBD><EFBFBD>ѹ(mV)
*/
int ADC_VoltConverSignalPGA_0dB(uint16_t adc_data);
/**
* @brief 6dB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱADC<EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD>ֵת<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ѹ(mV)
*
* @param adc_data - ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*
* @return <EFBFBD><EFBFBD>ѹ(mV)
*/
int ADC_VoltConverSignalPGA_6dB(uint16_t adc_data);
/**
* @brief 12dB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱADC<EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD>ֵת<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ѹ(mV)
*
* @param adc_data - ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*
* @return <EFBFBD><EFBFBD>ѹ(mV)
*/
int ADC_VoltConverSignalPGA_12dB(uint16_t adc_data);
/**
* @brief 18dB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱADC<EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD>ֵת<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ѹ(mV)
*
* @param adc_data - ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*
* @return <EFBFBD><EFBFBD>ѹ(mV)
*/
int ADC_VoltConverSignalPGA_18dB(uint16_t adc_data);
/**
* @brief 24dB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱADC<EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD>ֵת<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ѹ(mV)
*
* @param adc_data - ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*
* @return <EFBFBD><EFBFBD>ѹ(mV)
*/
int ADC_VoltConverSignalPGA_24dB(uint16_t adc_data);
/**
* @brief -12dB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱADC<EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD>ֵת<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ѹ(mV)
*
* @param adc_data - ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*
* @return <EFBFBD><EFBFBD>ѹ(mV)
*/
int ADC_VoltConverDiffPGA_MINUS_12dB(uint16_t adc_data);
/**
* @brief -6dB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱADC<EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD>ֵת<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ѹ(mV)
*
* @param adc_data - ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*
* @return <EFBFBD><EFBFBD>ѹ(mV)
*/
int ADC_VoltConverDiffPGA_MINUS_6dB(uint16_t adc_data);
/**
* @brief 0dB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱADC<EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD>ֵת<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ѹ(mV)
*
* @param adc_data - ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*
* @return <EFBFBD><EFBFBD>ѹ(mV)
*/
int ADC_VoltConverDiffPGA_0dB(uint16_t adc_data);
/**
* @brief 6dB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱADC<EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD>ֵת<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ѹ(mV)
*
* @param adc_data - ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*
* @return <EFBFBD><EFBFBD>ѹ(mV)
*/
int ADC_VoltConverDiffPGA_6dB(uint16_t adc_data);
/**
* @brief 12dB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱADC<EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD>ֵת<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ѹ(mV)
*
* @param adc_data - ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*
* @return <EFBFBD><EFBFBD>ѹ(mV)
*/
int ADC_VoltConverDiffPGA_12dB(uint16_t adc_data);
/**
* @brief 18dB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱADC<EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD>ֵת<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ѹ(mV)
*
* @param adc_data - ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*
* @return <EFBFBD><EFBFBD>ѹ(mV)
*/
int ADC_VoltConverDiffPGA_18dB(uint16_t adc_data);
/**
* @brief 24dB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱADC<EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD>ֵת<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ѹ(mV)
*
* @param adc_data - ADC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*
* @return <EFBFBD><EFBFBD>ѹ(mV)
*/
int ADC_VoltConverDiffPGA_24dB(uint16_t adc_data);
2024-12-02 16:26:55 +08:00
/**
* @brief <EFBFBD><EFBFBD>ȡADCת<EFBFBD><EFBFBD>ֵ
*
* @return ADCת<EFBFBD><EFBFBD>ֵ
*/
#define ADC_ReadConverValue() (R16_ADC_DATA)
/**
* @brief ADCִ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>
*/
#define ADC_StartUp() (R8_ADC_CONVERT |= RB_ADC_START)
/**
* @brief <EFBFBD><EFBFBD>ȡADC<EFBFBD>ж<EFBFBD>״̬
*/
#define ADC_GetITStatus() (R8_ADC_INT_FLAG & RB_ADC_IF_EOC)
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ADC<EFBFBD>жϱ<EFBFBD>־
*/
#define ADC_ClearITFlag() (R8_ADC_CONVERT = R8_ADC_CONVERT)
/**
* @brief <EFBFBD><EFBFBD>ȡADC DMA<EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
*/
#define ADC_GetDMAStatus() (R8_ADC_DMA_IF & RB_ADC_IF_DMA_END)
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ADC DMA<EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־
*/
#define ADC_ClearDMAFlag() (R8_ADC_DMA_IF |= RB_ADC_IF_DMA_END)
/**
2025-02-21 14:38:41 +08:00
* @brief ʹ<EFBFBD>ܶ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADC,<EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD>ʼת<EFBFBD><EFBFBD>
2024-12-02 16:26:55 +08:00
*/
#define ADC_StartAutoDMA() (R8_ADC_CTRL_DMA |= RB_ADC_AUTO_EN)
/**
2025-02-21 14:38:41 +08:00
* @brief <EFBFBD>رն<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADC
2024-12-02 16:26:55 +08:00
*/
#define ADC_StopAutoDMA() (R8_ADC_CTRL_DMA &= ~RB_ADC_AUTO_EN)
/**
2025-02-21 14:38:41 +08:00
* @brief ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD> ADC,<EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD>ADC_StartUp<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼת<EFBFBD><EFBFBD>
2024-12-02 16:26:55 +08:00
*/
#define ADC_StartContDMA() (R8_ADC_CTRL_DMA |= RB_ADC_CONT_EN)
/**
2025-02-21 14:38:41 +08:00
* @brief <EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD> ADC
2024-12-02 16:26:55 +08:00
*/
#define ADC_StopContDMA() (R8_ADC_CTRL_DMA &= ~RB_ADC_CONT_EN)
/**
* @brief <EFBFBD>ر<EFBFBD>ADC<EFBFBD><EFBFBD>Դ
*/
#define ADC_DisablePower() (R8_ADC_CFG &= ~RB_ADC_POWER_ON)
#ifdef __cplusplus
}
#endif
2025-02-21 14:38:41 +08:00
#endif // __CH58x_ADC_H__