rtt-f030/bsp/efm32/drv_acmp.h

66 lines
2.3 KiB
C

/******************************************************************//**
* @file drv_acmp.h
* @brief ACMP (analog comparator) driver of RT-Thread RTOS for EFM32
* COPYRIGHT (C) 2011, RT-Thread Development Team
* @author onelife
* @version 0.4 beta
**********************************************************************
* @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-23 onelife Initial creation for EFM32
*********************************************************************/
#ifndef __DRV_ACMP_H__
#define __DRV_ACMP_H__
/* Includes -------------------------------------------------------------------*/
#include "hdl_interrupt.h"
/* Exported types -------------------------------------------------------------*/
struct efm32_acmp_device_t
{
ACMP_TypeDef *acmp_device;
efm32_irq_hook_t hook;
};
struct efm32_acmp_output_t
{
rt_uint32_t location;
rt_bool_t enable;
rt_bool_t invert;
};
struct efm32_acmp_control_t
{
ACMP_Init_TypeDef *init;
ACMP_Channel_TypeDef posInput;
ACMP_Channel_TypeDef negInput;
struct efm32_acmp_output_t *output;
efm32_irq_hook_t hook;
};
/* Exported constants ---------------------------------------------------------*/
/* Exported macro -------------------------------------------------------------*/
/** Default config for ACMP init structure. */
#define ACMP_INIT_DEFAULT \
{ \
false, /* Full bias current*/ \
true, /* Half bias current */ \
0, /* Biasprog current configuration */ \
true, /* Enable interrupt for falling edge */ \
true, /* Enable interrupt for rising edge */ \
acmpWarmTime512, /* Warm-up time must be >10us */ \
acmpHysteresisLevel0, /* Hysteresis configuration */ \
0, /* Inactive comparator output value */ \
false, /* Disable low power mode */ \
0 /* Vdd reference scaling */ \
}
/* Exported functions --------------------------------------------------------- */
void rt_hw_acmp_init(void);
#endif /*__DRV_ACMP_H__ */