rt-thread-official/bsp/efm32/drv_adc.h

73 lines
2.4 KiB
C
Raw Normal View History

2013-01-08 22:40:58 +08:00
/***************************************************************************//**
2021-03-27 15:16:57 +08:00
* @file drv_adc.h
* @brief ADC driver of RT-Thread RTOS for EFM32
2013-01-08 22:40:58 +08:00
* COPYRIGHT (C) 2012, RT-Thread Development Team
2021-03-27 15:16:57 +08:00
* @author onelife
2013-01-08 22:40:58 +08:00
* @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
2021-03-27 15:16:57 +08:00
* Date Author Notes
* 2011-02-21 onelife Initial creation for EFM32
* 2011-07-14 onelife Add multiple channels support for scan mode
2013-01-08 22:40:58 +08:00
******************************************************************************/
#ifndef __DRV_ADC_H__
#define __DRV_ADC_H__
/* Includes ------------------------------------------------------------------*/
/* Exported types ------------------------------------------------------------*/
struct efm32_adc_device_t
{
2021-03-27 15:16:57 +08:00
ADC_TypeDef *adc_device;
rt_uint8_t mode;
rt_uint8_t singleCount;
rt_uint8_t singleDmaChannel;
rt_uint8_t scanCount;
rt_uint8_t scanDmaChannel;
2013-01-08 22:40:58 +08:00
};
struct efm32_adc_control_single_t
{
2021-03-27 15:16:57 +08:00
rt_uint8_t count;
rt_uint8_t dmaChannel;
ADC_InitSingle_TypeDef *init;
2013-01-08 22:40:58 +08:00
};
struct efm32_adc_control_scan_t
{
2021-03-27 15:16:57 +08:00
rt_uint8_t count;
rt_uint8_t dmaChannel;
ADC_InitScan_TypeDef *init;
2013-01-08 22:40:58 +08:00
};
struct efm32_adc_control_t
{
2021-03-27 15:16:57 +08:00
rt_uint8_t mode;
struct efm32_adc_control_scan_t scan;
struct efm32_adc_control_single_t single;
2013-01-08 22:40:58 +08:00
};
struct efm32_adc_result_t
{
2021-03-27 15:16:57 +08:00
rt_uint8_t mode;
void *buffer;
2013-01-08 22:40:58 +08:00
};
/* Exported constants --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
2021-03-27 15:16:57 +08:00
#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)
2013-01-08 22:40:58 +08:00
/* Exported functions ------------------------------------------------------- */
void rt_hw_adc_init(void);
#endif /*__DRV_ADC_H__ */