adc.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486
  1. /******************************************************************************
  2. * Copyright (C) 2017, Huada Semiconductor Co.,Ltd All rights reserved.
  3. *
  4. * This software is owned and published by:
  5. * Huada Semiconductor Co.,Ltd ("HDSC").
  6. *
  7. * BY DOWNLOADING, INSTALLING OR USING THIS SOFTWARE, YOU AGREE TO BE BOUND
  8. * BY ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT.
  9. *
  10. * This software contains source code for use with HDSC
  11. * components. This software is licensed by HDSC to be adapted only
  12. * for use in systems utilizing HDSC components. HDSC shall not be
  13. * responsible for misuse or illegal use of this software for devices not
  14. * supported herein. HDSC is providing this software "AS IS" and will
  15. * not be responsible for issues arising from incorrect user implementation
  16. * of the software.
  17. *
  18. * Disclaimer:
  19. * HDSC MAKES NO WARRANTY, EXPRESS OR IMPLIED, ARISING BY LAW OR OTHERWISE,
  20. * REGARDING THE SOFTWARE (INCLUDING ANY ACOOMPANYING WRITTEN MATERIALS),
  21. * ITS PERFORMANCE OR SUITABILITY FOR YOUR INTENDED USE, INCLUDING,
  22. * WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, THE IMPLIED
  23. * WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE, AND THE IMPLIED
  24. * WARRANTY OF NONINFRINGEMENT.
  25. * HDSC SHALL HAVE NO LIABILITY (WHETHER IN CONTRACT, WARRANTY, TORT,
  26. * NEGLIGENCE OR OTHERWISE) FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT
  27. * LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION,
  28. * LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING FROM USE OR
  29. * INABILITY TO USE THE SOFTWARE, INCLUDING, WITHOUT LIMITATION, ANY DIRECT,
  30. * INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS OF DATA,
  31. * SAVINGS OR PROFITS,
  32. * EVEN IF Disclaimer HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  33. * YOU ASSUME ALL RESPONSIBILITIES FOR SELECTION OF THE SOFTWARE TO ACHIEVE YOUR
  34. * INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS OBTAINED
  35. * FROM, THE SOFTWARE.
  36. *
  37. * This software may be replicated in part or whole for the licensed use,
  38. * with the restriction that this Disclaimer and Copyright notice must be
  39. * included with each copy of this software, whether used in part or whole,
  40. * at all times.
  41. */
  42. /******************************************************************************/
  43. /** \file adc.h
  44. **
  45. ** Header file for AD Converter functions
  46. ** @link ADC Group Some description @endlink
  47. **
  48. ** - 2017-06-28 Alex First Version
  49. **
  50. ******************************************************************************/
  51. #ifndef __ADC_H__
  52. #define __ADC_H__
  53. /******************************************************************************/
  54. /* Include files */
  55. /******************************************************************************/
  56. #include "ddl.h"
  57. #include "interrupts_hc32l136.h"
  58. /* C binding of definitions if building with C++ compiler */
  59. #ifdef __cplusplus
  60. extern "C"
  61. {
  62. #endif
  63. /**
  64. ******************************************************************************
  65. ** \defgroup AdcGroup AD Converter (ADC)
  66. **
  67. ******************************************************************************/
  68. //@{
  69. /******************************************************************************
  70. * Global definitions
  71. ******************************************************************************/
  72. #define ADC_SCAN_CH0_EN (0x1u) /*!< SCAN模式使用ADC CH0 */
  73. #define ADC_SCAN_CH1_EN (0x1u<<1) /*!< SCAN模式使用ADC CH1 */
  74. #define ADC_SCAN_CH2_EN (0x1u<<2) /*!< SCAN模式使用ADC CH2 */
  75. #define ADC_SCAN_CH3_EN (0x1u<<3) /*!< SCAN模式使用ADC CH3 */
  76. #define ADC_SCAN_CH4_EN (0x1u<<4) /*!< SCAN模式使用ADC CH4 */
  77. #define ADC_SCAN_CH5_EN (0x1u<<5) /*!< SCAN模式使用ADC CH5 */
  78. #define ADC_SCAN_CH6_EN (0x1u<<6) /*!< SCAN模式使用ADC CH6 */
  79. #define ADC_SCAN_CH7_EN (0x1u<<7) /*!< SCAN模式使用ADC CH7 */
  80. /******************************************************************************
  81. ** Global type definitions
  82. *****************************************************************************/
  83. /**
  84. ******************************************************************************
  85. ** \brief ADC采样模式
  86. *****************************************************************************/
  87. typedef enum en_adc_op_mode
  88. {
  89. AdcSglMode = 0u, /*!< 单输入通道单次采样模式 */
  90. AdcSCanMode = 1u, /*!< 多输入通道顺序扫描采样模式,多输入通道插队扫描采样模式*/
  91. } en_adc_op_mode_t;
  92. /**
  93. ******************************************************************************
  94. ** \brief ADC时钟选择
  95. *****************************************************************************/
  96. typedef enum en_adc_clk_sel
  97. {
  98. AdcClkSysTDiv1 = 0u, /*!< PCLK */
  99. AdcClkSysTDiv2 = 1u, /*!< 1/2 PCLK */
  100. AdcClkSysTDiv4 = 2u, /*!< 1/4 PCLK */
  101. AdcClkSysTDiv8 = 3u, /*!< 1/8 PCLK */
  102. } en_adc_clk_div_t;
  103. /**
  104. ******************************************************************************
  105. ** \brief ADC参考电压
  106. *****************************************************************************/
  107. typedef enum en_adc_ref_vol_sel
  108. {
  109. RefVolSelInBgr1p5 = 0u, /*!<内部参考电压1.5V(SPS<=200kHz)*/
  110. RefVolSelInBgr2p5 = 1u, /*!<内部参考电压2.5V(avdd>3V,SPS<=200kHz)*/
  111. RefVolSelExtern1 = 2u, /*!<外部输入(max avdd) PB01*/
  112. RefVolSelAVDD = 3u, /*!<AVDD*/
  113. }en_adc_ref_vol_sel_t;
  114. /**
  115. ******************************************************************************
  116. ** \brief ADC采样通道选择
  117. *****************************************************************************/
  118. typedef enum en_adc_samp_ch_sel
  119. {
  120. AdcExInputCH0 = 0u, /*!<使用通道0输入PA00*/
  121. AdcExInputCH1 = 1u, /*!<使用通道1输入PA01*/
  122. AdcExInputCH2 = 2u, /*!<使用通道2输入PA02*/
  123. AdcExInputCH3 = 3u, /*!<使用通道3输入PA03*/
  124. AdcExInputCH4 = 4u, /*!<使用通道4输入PA04*/
  125. AdcExInputCH5 = 5u, /*!<使用通道5输入PA05*/
  126. AdcExInputCH6 = 6u, /*!<使用通道6输入PA06*/
  127. AdcExInputCH7 = 7u, /*!<使用通道7输入PA07*/
  128. AdcExInputCH8 = 8u, /*!<使用通道8输入PB00*/
  129. AdcExInputCH9 = 9u, /*!<使用通道8输入PB01*/
  130. AdcExInputCH10 = 10u, /*!<使用通道8输入PC00*/
  131. AdcExInputCH11 = 11u, /*!<使用通道1输入PC01*/
  132. AdcExInputCH12 = 12u, /*!<使用通道2输入PC02*/
  133. AdcExInputCH13 = 13u, /*!<使用通道3输入PC03*/
  134. AdcExInputCH14 = 14u, /*!<使用通道4输入PC04*/
  135. AdcExInputCH15 = 15u, /*!<使用通道5输入PC05*/
  136. AdcExInputCH16 = 16u, /*!<使用通道6输入PB02*/
  137. AdcExInputCH17 = 17u, /*!<使用通道7输入PB10*/
  138. AdcExInputCH18 = 18u, /*!<使用通道8输入PB11*/
  139. AdcExInputCH19 = 19u, /*!<使用通道8输入PB12*/
  140. AdcExInputCH20 = 20u, /*!<使用通道7输入PB13*/
  141. AdcExInputCH21 = 21u, /*!<使用通道8输入PB14*/
  142. AdcExInputCH22 = 22u, /*!<使用通道8输入PB15*/
  143. AdcExInputCH23 = 23u, /*!<使用通道8输入PC06*/
  144. AdcOPA0Input = 24u, /*!<使用通道8输入OPA0*/
  145. AdcOPA1Input = 25u, /*!<使用通道8输入OPA1*/
  146. AdcOPA2Input = 26u, /*!<使用通道8输入OPA2*/
  147. AdcAVccDiV3Input = 27u, /*!<使用1/3 AVCC(必须使用输入增益)*/
  148. AdcAiTsInput = 28u, /*!<使用BGR_TS(必须使用输入增益)*/
  149. AdcVref1P2Input = 29u, /*!<使用Vref1P2(必须使用输入增益)*/
  150. }en_adc_samp_ch_sel_t;
  151. /**
  152. ******************************************************************************
  153. ** \brief ADC采样周期数选择
  154. *****************************************************************************/
  155. typedef enum en_adc_samp_time_sel
  156. {
  157. AdcSampTime4Clk = 0u, /*!<4个采样时钟*/
  158. AdcSampTime6Clk = 1u, /*!<6个采样时钟*/
  159. AdcSampTime8Clk = 2u, /*!<8个采样时钟*/
  160. AdcSampTime12Clk = 3u, /*!<12个采样时钟*/
  161. }en_adc_samp_time_sel_t;
  162. /**
  163. ******************************************************************************
  164. ** \brief ADC周边模块反射源选择
  165. *****************************************************************************/
  166. typedef enum en_adc_trig_sel
  167. {
  168. AdcTrigTimer0 = 0u, /*!<选择timer0中断源,自动触发ADC采样*/
  169. AdcTrigTimer1 = 1u, /*!<选择timer1中断源,自动触发ADC采样*/
  170. AdcTrigTimer2 = 2u, /*!<选择timer2中断源,自动触发ADC采样*/
  171. AdcTrigTimer3 = 3u, /*!<选择timer3中断源,自动触发ADC采样*/
  172. AdcTrigTimer4 = 4u, /*!<选择timer4中断源,自动触发ADC采样*/
  173. AdcTrigTimer5 = 5u, /*!<选择timer5中断源,自动触发ADC采样*/
  174. AdcTrigTimer6 = 6u, /*!<选择timer6中断源,自动触发ADC采样*/
  175. AdcTrigUart0 = 7u, /*!<选择uart0中断源,自动触发ADC采样*/
  176. AdcTrigUart1 = 8u, /*!<选择uart1中断源,自动触发ADC采样*/
  177. AdcTrigLpuart0 = 9u, /*!<选择lpuart0中断源,自动触发ADC采样*/
  178. AdcTrigLpuart1 = 10u, /*!<选择lpuart1中断源,自动触发ADC采样*/
  179. AdcTrigVC0 = 11u, /*!<选择VC0中断源,自动触发ADC采样*/
  180. AdcTrigVC1 = 12u, /*!<选择VC1中断源,自动触发ADC采样*/
  181. AdcTrigRTC = 13u, /*!<选择RTC中断源,自动触发ADC采样*/
  182. AdcTrigPCA = 14u, /*!<选择PCA中断源,自动触发ADC采样*/
  183. AdcTrigSPI0 = 15u, /*!<选择SPI0中断源,自动触发ADC采样*/
  184. AdcTrigSPI1 = 16u, /*!<选择SPI1中断源,自动触发ADC采样*/
  185. AdcTrigDMA = 17u, /*!<选择DMA中断源,自动触发ADC采样*/
  186. AdcTrigPA03 = 18u, /*!<选择PA03中断源,自动触发ADC采样*/
  187. AdcTrigPB03 = 19u, /*!<选择PB03中断源,自动触发ADC采样*/
  188. AdcTrigPC03 = 20u, /*!<选择PC03中断源,自动触发ADC采样*/
  189. AdcTrigPD03 = 21u, /*!<选择PD03中断源,自动触发ADC采样*/
  190. AdcTrigPA07 = 22u, /*!<选择PA07中断源,自动触发ADC采样*/
  191. AdcTrigPB07 = 23u, /*!<选择PB07中断源,自动触发ADC采样*/
  192. AdcTrigPC07 = 24u, /*!<选择PC07中断源,自动触发ADC采样*/
  193. AdcTrigPD07 = 25u, /*!<选择PD07中断源,自动触发ADC采样*/
  194. AdcTrigPA11 = 26u, /*!<选择PA11中断源,自动触发ADC采样*/
  195. AdcTrigPB11 = 27u, /*!<选择PB11中断源,自动触发ADC采样*/
  196. AdcTrigPC11 = 28u, /*!<选择PC11中断源,自动触发ADC采样*/
  197. AdcTrigPA15 = 29u, /*!<选择PA15中断源,自动触发ADC采样*/
  198. AdcTrigPB15 = 30u, /*!<选择PB15中断源,自动触发ADC采样*/
  199. AdcTrigPC15 = 31u, /*!<选择PC15中断源,自动触发ADC采样*/
  200. }en_adc_trig_sel_t;
  201. /**
  202. ******************************************************************************
  203. ** \brief ADC外部触发源寄存器选择
  204. *****************************************************************************/
  205. typedef enum en_adc_ext_trig_sel
  206. {
  207. AdcExtTrig0 = 0u, /*!<单次及顺序扫描转换 外部触发源选择寄存器*/
  208. AdcExtTrig1 = 1u, /*!<插队扫描转换 外部触发源选择寄存器*/
  209. }en_adc_ext_trig_sel_t;
  210. /**
  211. ******************************************************************************
  212. ** \brief ADC顺序转换通道
  213. *****************************************************************************/
  214. typedef enum en_adc_sqr_chmux
  215. {
  216. CH0MUX = 0u, /*!<转换通道0*/
  217. CH1MUX = 1u, /*!<转换通道1*/
  218. CH2MUX = 2u, /*!<转换通道2*/
  219. CH3MUX = 3u, /*!<转换通道3*/
  220. CH4MUX = 4u, /*!<转换通道4*/
  221. CH5MUX = 5u, /*!<转换通道5*/
  222. CH6MUX = 6u, /*!<转换通道6*/
  223. CH7MUX = 7u, /*!<转换通道7*/
  224. CH8MUX = 8u, /*!<转换通道8*/
  225. CH9MUX = 9u, /*!<转换通道9*/
  226. CH10MUX = 10u, /*!<转换通道10*/
  227. CH11MUX = 11u, /*!<转换通道11*/
  228. CH12MUX = 12u, /*!<转换通道12*/
  229. CH13MUX = 13u, /*!<转换通道13*/
  230. CH14MUX = 14u, /*!<转换通道14*/
  231. CH15MUX = 15u, /*!<转换通道15*/
  232. }en_adc_sqr_chmux_t;
  233. /**
  234. ******************************************************************************
  235. ** \brief ADC插队转换通道
  236. *****************************************************************************/
  237. typedef enum en_adc_jqr_chmux
  238. {
  239. JQRCH0MUX = 0u, /*!<转换通道0*/
  240. JQRCH1MUX = 1u, /*!<转换通道1*/
  241. JQRCH2MUX = 2u, /*!<转换通道2*/
  242. JQRCH3MUX = 3u, /*!<转换通道3*/
  243. }en_adc_jqr_chmux_t;
  244. /**
  245. ******************************************************************************
  246. ** \brief ADC结果对齐方式
  247. *****************************************************************************/
  248. typedef enum en_adc_align
  249. {
  250. AlignRight = 0u,
  251. AlignLeft = 1u,
  252. }en_adc_align_t;
  253. /******************************************************************************
  254. * Extern type definitions ('typedef') *
  255. ******************************************************************************/
  256. /**
  257. ******************************************************************************
  258. ** \brief ADC配置
  259. *****************************************************************************/
  260. typedef struct stc_adc_cfg
  261. {
  262. /*! ADC操作模式*/
  263. en_adc_op_mode_t enAdcOpMode;
  264. /*! ADC时钟选择*/
  265. en_adc_clk_div_t enAdcClkDiv;
  266. /*! ADC采样时间*/
  267. en_adc_samp_time_sel_t enAdcSampTimeSel;
  268. /*! ADC参考电压*/
  269. en_adc_ref_vol_sel_t enAdcRefVolSel;
  270. /*! ADC输入增益使能*/
  271. boolean_t bAdcInBufEn;
  272. }stc_adc_cfg_t;
  273. /**
  274. ******************************************************************************
  275. ** \brief ADC DMA触发源寄存器配置
  276. *****************************************************************************/
  277. typedef enum en_adc_dmatrig
  278. {
  279. /*!插队扫描触发DMA读取控制*/
  280. DmaJqr = 0,
  281. /*!顺序扫描触发DMA读取控制*/
  282. DmaSqr = 1
  283. }en_adc_dmatrig_t;
  284. /**
  285. ******************************************************************************
  286. ** \brief ADC外部触发源寄存器配置
  287. *****************************************************************************/
  288. typedef struct stc_adc_ext_trig_cfg
  289. {
  290. /*! 外部触发源寄存器选择*/
  291. en_adc_ext_trig_sel_t enAdcExtTrigRegSel;
  292. /*! ADC单次及顺序转换触发选择*/
  293. en_adc_trig_sel_t enAdcTrig0Sel;
  294. /*! ADC插队转换触发选择*/
  295. en_adc_trig_sel_t enAdcTrig1Sel;
  296. }stc_adc_ext_trig_cfg_t;
  297. /**
  298. ******************************************************************************
  299. ** \brief ADC中断配置
  300. *****************************************************************************/
  301. typedef struct stc_adc_irq
  302. {
  303. /*!<ADC插队扫描完成中断*/
  304. boolean_t bAdcJQRIrq;
  305. /*!<ADC顺序扫描完成中断*/
  306. boolean_t bAdcSQRIrq;
  307. /*! ADC区间中断*/
  308. boolean_t bAdcRegCmp;
  309. /*! ADC上超出区间中断*/
  310. boolean_t bAdcHhtCmp;
  311. /*! ADC下超出区间中断*/
  312. boolean_t bAdcLltCmp;
  313. /*!<ADC单次转换完成中断*/
  314. boolean_t bAdcIrq;
  315. }stc_adc_irq_t;
  316. typedef struct stc_adc_threshold_cfg
  317. {
  318. boolean_t bAdcRegCmp ; /*!ADC区间使能*/
  319. boolean_t bAdcHhtCmp ; /*!ADC上超出区间使能*/
  320. boolean_t bAdcLltCmp ; /*!ADC下超出区间使能*/
  321. uint32_t u32AdcRegHighThd; /*!ADC下超出区间*/
  322. uint32_t u32AdcRegLowThd; /*!ADC下超出区间*/
  323. en_adc_samp_ch_sel_t enThCh; /*!阈值比较通道选择*/
  324. }stc_adc_threshold_cfg_t;
  325. /**
  326. ******************************************************************************
  327. ** \brief ADC中断回调函数
  328. *****************************************************************************/
  329. typedef struct stc_adc_irq_calbakfn_pt
  330. {
  331. /*! ADC插队扫描中断回调函数指针*/
  332. func_ptr_t pfnAdcJQRIrq;
  333. /*! ADC顺序扫描中断回调函数指针*/
  334. func_ptr_t pfnAdcSQRIrq;
  335. /*! ADC区间中断回调函数指针*/
  336. func_ptr_t pfnAdcRegIrq;
  337. /*! ADC上超出区间中断回调函数指针*/
  338. func_ptr_t pfnAdcHhtIrq;
  339. /*! ADC下超出区间中断回调函数指针*/
  340. func_ptr_t pfnAdcLltIrq;
  341. /*! ADC单次转换中断回调函数指针*/
  342. func_ptr_t pfnAdcIrq;
  343. }stc_adc_irq_calbakfn_pt_t;
  344. /******************************************************************************
  345. * Global variable definitions ('extern')
  346. ******************************************************************************/
  347. /******************************************************************************
  348. * Global function prototypes (definition in C source)
  349. ******************************************************************************/
  350. //ADC initialization
  351. en_result_t Adc_Init(stc_adc_cfg_t* pstcAdcConfig);
  352. //ADC ExtTrig Register config
  353. en_result_t Adc_ExtTrigCfg(stc_adc_ext_trig_cfg_t* pstcExtTrigConfig);
  354. //ADC de-init
  355. void Adc_DeInit(void);
  356. //ADC conversion start
  357. void Adc_SGL_Start(void);
  358. //ADC conversion stop
  359. void Adc_SGL_Stop(void);
  360. //ADC SQR conversion start
  361. void Adc_SQR_Start(void);
  362. //ADC SQR conversion stop
  363. void Adc_SQR_Stop(void);
  364. //ADC JQR conversion start
  365. void Adc_JQR_Start(void);
  366. //ADC JQR conversion stop
  367. void Adc_JQR_Stop(void);
  368. //ADC conversion enable
  369. void Adc_Enable(void);
  370. //ADC conversion disable
  371. void Adc_Disable(void);
  372. //ADC single covert mode configuration
  373. en_result_t Adc_ConfigSglMode(stc_adc_cfg_t* pstcAdcConfig);
  374. //ADC SQR mode configuration
  375. en_result_t Adc_ConfigSqrMode(stc_adc_cfg_t* pstcAdcConfig, uint8_t u8AdcSampCnt,boolean_t bAdcResultAccEn);
  376. //ADC JQR mode configuration
  377. en_result_t Adc_ConfigJqrMode(stc_adc_cfg_t* pstcAdcConfig, uint8_t u8AdcSampCnt,boolean_t bAdcResultAccEn);
  378. //ADC single covert mode channel configuraion
  379. en_result_t Adc_ConfigSglChannel( en_adc_samp_ch_sel_t enstcAdcSampCh);
  380. //ADC SQR mode channel configuraion
  381. en_result_t Adc_ConfigSqrChannel(en_adc_sqr_chmux_t enstcAdcSqrChMux, en_adc_samp_ch_sel_t enstcAdcSampCh);
  382. //ADC JQR mode channel configuraion
  383. en_result_t Adc_ConfigJqrChannel(en_adc_jqr_chmux_t enstcAdcJqrChMux, en_adc_samp_ch_sel_t enstcAdcSampCh);
  384. //ADC DMA Trigger
  385. en_result_t Adc_ConfigDmaTrig(en_adc_dmatrig_t enAdcDmaTrig);
  386. //ADC IRQ configuration
  387. void Adc_ConfigIrq(stc_adc_irq_t* pstcAdcIrqCfg,
  388. stc_adc_irq_calbakfn_pt_t* pstcAdcIrqCalbaks);
  389. //ADC enable IRQ
  390. void Adc_EnableIrq(void);
  391. //ADC disable IRQ
  392. void Adc_DisableIrq(void);
  393. //ADC enable threshold compare
  394. void Adc_ThresholdCfg(stc_adc_threshold_cfg_t* stcAdcThrCfg);
  395. //ADC get IRQ state
  396. void Adc_GetIrqState(stc_adc_irq_t* pstcAdcIrqState);
  397. //ADC clear IRQ states
  398. void Adc_ClrSglIrqState(void);
  399. void Adc_ClrJqrIrqState(void);
  400. void Adc_ClrSqrIrqState(void);
  401. void Adc_ClrRegIrqState(void);
  402. void Adc_ClrHtIrqState(void);
  403. void Adc_ClrLtIrqState(void);
  404. //查询ADC单次转换状态
  405. boolean_t Adc_PollSglBusyState(void);
  406. //查询ADC顺序扫描转换转换状态
  407. boolean_t Adc_PollSqrBusyState(void);
  408. //查询ADC插队扫描转换状态
  409. boolean_t Adc_PollJqrBusyState(void);
  410. //查询ADC结果比较区间状态
  411. boolean_t Adc_PollRegBusyState(void);
  412. //查询ADC结果比较上阈值状态
  413. boolean_t Adc_PollHTBusyState(void);
  414. //查询ADC结果比较下阈值状态
  415. boolean_t Adc_PollLtBusyState(void);
  416. //获取单次转换采样值
  417. en_result_t Adc_GetSglResult(uint16_t* pu16AdcResult);
  418. //获取顺序扫描采样值
  419. en_result_t Adc_GetSqrResult(uint16_t* pu16AdcResult,uint8_t SQRChannelIndex);
  420. //获取插队扫描采样值
  421. en_result_t Adc_GetJqrResult(uint16_t* pu16AdcResult,uint8_t JQRChannelIndex);
  422. //获取累加采样值
  423. en_result_t Adc_GetAccResult(uint32_t* pu32AdcAccResult);
  424. //clear ADC accumulated result
  425. void Adc_ClrAccResult(void);
  426. //设置参考电压
  427. en_result_t Adc_SetVref(en_adc_ref_vol_sel_t enAdcRefVolSel);
  428. //设置结果对齐方式
  429. en_result_t Adc_SetAlign(en_adc_align_t enAlign);
  430. //@}
  431. #ifdef __cplusplus
  432. }
  433. #endif
  434. #endif /* __ADC_H__ */
  435. /******************************************************************************/
  436. /* EOF (not truncated) */
  437. /******************************************************************************/