| /********************************************************************** | |
| * $Id$ lpc18xx_dac.h 2011-06-02 | |
| *//** | |
| * @file lpc18xx_dac.h | |
| * @brief Contains all macro definitions and function prototypes | |
| * support for DAC firmware library on LPC18xx | |
| * @version 1.0 | |
| * @date 02. June. 2011 | |
| * @author NXP MCU SW Application Team | |
| * | |
| * Copyright(C) 2011, NXP Semiconductor | |
| * All rights reserved. | |
| * | |
| *********************************************************************** | |
| * Software that is described herein is for illustrative purposes only | |
| * which provides customers with programming information regarding the | |
| * products. This software is supplied "AS IS" without any warranties. | |
| * NXP Semiconductors assumes no responsibility or liability for the | |
| * use of the software, conveys no license or title under any patent, | |
| * copyright, or mask work right to the product. NXP Semiconductors | |
| * reserves the right to make changes in the software without | |
| * notification. NXP Semiconductors also make no representation or | |
| * warranty that such application will be suitable for the specified | |
| * use without further testing or modification. | |
| **********************************************************************/ | |
| /* Peripheral group ----------------------------------------------------------- */ | |
| /** @defgroup DAC DAC (Digital to Analog Converter) | |
| * @ingroup LPC1800CMSIS_FwLib_Drivers | |
| * @{ | |
| */ | |
| #ifndef LPC18XX_DAC_H_ | |
| #define LPC18XX_DAC_H_ | |
| /* Includes ------------------------------------------------------------------- */ | |
| #include "LPC18xx.h" | |
| #include "lpc_types.h" | |
| #ifdef __cplusplus | |
| extern "C" | |
| { | |
| #endif | |
| /* Public Macros -------------------------------------------------------------- */ | |
| /** @defgroup DAC_Private_Macros DAC Private Macros | |
| * @{ | |
| */ | |
| /** After the selected settling time after this field is written with a | |
| new VALUE, the voltage on the AOUT pin (with respect to VSSA) | |
| is VALUE/1024 × VREF */ | |
| #define DAC_VALUE(n) ((uint32_t)((n&0x3FF)<<6)) | |
| /** If this bit = 0: The settling time of the DAC is 1 microsecond max, | |
| * and the maximum current is 700 microAmpere | |
| * If this bit = 1: The settling time of the DAC is 2.5 microsecond | |
| * and the maximum current is 350 microAmpere */ | |
| #define DAC_BIAS_EN ((uint32_t)(1<<16)) | |
| /** Value to reload interrupt DMA counter */ | |
| #define DAC_CCNT_VALUE(n) ((uint32_t)(n&0xffff)) | |
| /** DCAR double buffering */ | |
| #define DAC_DBLBUF_ENA ((uint32_t)(1<<1)) | |
| /** DCAR Time out count enable */ | |
| #define DAC_CNT_ENA ((uint32_t)(1<<2)) | |
| /** DCAR DMA access */ | |
| #define DAC_DMA_ENA ((uint32_t)(1<<3)) | |
| /** DCAR DACCTRL mask bit */ | |
| #define DAC_DACCTRL_MASK ((uint32_t)(0x0F)) | |
| /** Macro to determine if it is valid DAC peripheral */ | |
| #define PARAM_DACx(n) (((uint32_t *)n)==((uint32_t *)LPC_DAC)) | |
| /** Macro to check DAC current optional parameter */ | |
| #define PARAM_DAC_CURRENT_OPT(OPTION) ((OPTION == DAC_MAX_CURRENT_700uA)\ | |
| ||(OPTION == DAC_MAX_CURRENT_350uA)) | |
| /** | |
| * @} | |
| */ | |
| /* Public Types --------------------------------------------------------------- */ | |
| /** @defgroup DAC_Public_Types DAC Public Types | |
| * @{ | |
| */ | |
| /** | |
| * @brief Current option in DAC configuration option */ | |
| typedef enum | |
| { | |
| DAC_MAX_CURRENT_700uA = 0, /*!< The settling time of the DAC is 1 us max, | |
| and the maximum current is 700 uA */ | |
| DAC_MAX_CURRENT_350uA /*!< The settling time of the DAC is 2.5 us | |
| and the maximum current is 350 uA */ | |
| } DAC_CURRENT_OPT; | |
| /** | |
| * @brief Configuration for DAC converter control register */ | |
| typedef struct | |
| { | |
| uint8_t DBLBUF_ENA; /**< | |
| -0: Disable DACR double buffering | |
| -1: when bit CNT_ENA, enable DACR double buffering feature | |
| */ | |
| uint8_t CNT_ENA; /*!< | |
| -0: Time out counter is disable | |
| -1: Time out conter is enable | |
| */ | |
| uint8_t DMA_ENA; /*!< | |
| -0: DMA access is disable | |
| -1: DMA burst request | |
| */ | |
| uint8_t RESERVED; | |
| } DAC_CONVERTER_CFG_Type; | |
| /** | |
| * @} | |
| */ | |
| /* Public Functions ----------------------------------------------------------- */ | |
| /** @defgroup DAC_Public_Functions DAC Public Functions | |
| * @{ | |
| */ | |
| void DAC_Init(LPC_DAC_Type *DACx); | |
| void DAC_UpdateValue (LPC_DAC_Type *DACx, uint32_t dac_value); | |
| void DAC_SetBias (LPC_DAC_Type *DACx,uint32_t bias); | |
| void DAC_ConfigDAConverterControl (LPC_DAC_Type *DACx,DAC_CONVERTER_CFG_Type *DAC_ConverterConfigStruct); | |
| void DAC_SetDMATimeOut(LPC_DAC_Type *DACx,uint32_t time_out); | |
| /** | |
| * @} | |
| */ | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /* LPC18XX_DAC_H_ */ | |
| /** | |
| * @} | |
| */ | |
| /* --------------------------------- End Of File ------------------------------ */ | |