123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /***************************************************************************//**
- * @file drv_adc.h
- * @brief ADC driver of RT-Thread RTOS for EFM32
- * COPYRIGHT (C) 2012, RT-Thread Development Team
- * @author onelife
- * @version 1.0
- *******************************************************************************
- * @section License
- * The license and distribution terms for this file may be found in the file
- * LICENSE in this distribution or at http://www.rt-thread.org/license/LICENSE
- *******************************************************************************
- * @section Change Logs
- * Date Author Notes
- * 2011-02-21 onelife Initial creation for EFM32
- * 2011-07-14 onelife Add multiple channels support for scan mode
- ******************************************************************************/
- #ifndef __DRV_ADC_H__
- #define __DRV_ADC_H__
- /* Includes ------------------------------------------------------------------*/
- /* Exported types ------------------------------------------------------------*/
- struct efm32_adc_device_t
- {
- ADC_TypeDef *adc_device;
- rt_uint8_t mode;
- rt_uint8_t singleCount;
- rt_uint8_t singleDmaChannel;
- rt_uint8_t scanCount;
- rt_uint8_t scanDmaChannel;
- };
- struct efm32_adc_control_single_t
- {
- rt_uint8_t count;
- rt_uint8_t dmaChannel;
- ADC_InitSingle_TypeDef *init;
- };
- struct efm32_adc_control_scan_t
- {
- rt_uint8_t count;
- rt_uint8_t dmaChannel;
- ADC_InitScan_TypeDef *init;
- };
- struct efm32_adc_control_t
- {
- rt_uint8_t mode;
- struct efm32_adc_control_scan_t scan;
- struct efm32_adc_control_single_t single;
- };
- struct efm32_adc_result_t
- {
- rt_uint8_t mode;
- void *buffer;
- };
- /* Exported constants --------------------------------------------------------*/
- /* Exported macro ------------------------------------------------------------*/
- #define ADC_MODE_SINGLE (0x01)
- #define ADC_MODE_SCAN (0x02)
- #define ADC_MODE_TAILGATE (0x04)
- #define ADC_OP_SINGLE_REPEAT (0x10)
- #define ADC_OP_SCAN_REPEAT (0x20)
- #define ADC_MASK_MODE (0x0f)
- #define ADC_MASK_OP (0xf0)
- /* Exported functions ------------------------------------------------------- */
- void rt_hw_adc_init(void);
- #endif /*__DRV_ADC_H__ */
|