123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- /** @file adc.h
- * @brief ADC Driver Header File
- * @date 29.May.2013
- * @version 03.05.02
- *
- * This file contains:
- * - Definitions
- * - Types
- * - Interface Prototypes
- * .
- * which are relevant for the ADC driver.
- */
- /* (c) Texas Instruments 2009-2013, All rights reserved. */
- #ifndef __ADC_H__
- #define __ADC_H__
- #include "reg_adc.h"
- /* USER CODE BEGIN (0) */
- /* USER CODE END */
- /* ADC General Definitions */
- /** @def adcGROUP0
- * @brief Alias name for ADC event group
- *
- * @note This value should be used for API argument @a group
- */
- #define adcGROUP0 0U
- /** @def adcGROUP1
- * @brief Alias name for ADC group 1
- *
- * @note This value should be used for API argument @a group
- */
- #define adcGROUP1 1U
- /** @def adcGROUP2
- * @brief Alias name for ADC group 2
- *
- * @note This value should be used for API argument @a group
- */
- #define adcGROUP2 2U
- /** @enum adcResolution
- * @brief Alias names for data resolution
- * This enumeration is used to provide alias names for the data resolution:
- * - 12 bit resolution
- * - 10 bit resolution
- * - 8 bit resolution
- */
- enum adcResolution
- {
- ADC_12_BIT = 0x00000000U, /**< Alias for 12 bit data resolution */
- ADC_10_BIT = 0x00000100U, /**< Alias for 10 bit data resolution */
- ADC_8_BIT = 0x00000200U /**< Alias for 8 bit data resolution */
- };
- /** @enum adcFiFoStatus
- * @brief Alias names for FiFo status
- * This enumeration is used to provide alias names for the current FiFo states:
- * - FiFo is not full
- * - FiFo is full
- * - FiFo overflow occurred
- */
- enum adcFiFoStatus
- {
- ADC_FIFO_IS_NOT_FULL = 0U, /**< Alias for FiFo is not full */
- ADC_FIFO_IS_FULL = 1U, /**< Alias for FiFo is full */
- ADC_FIFO_OVERFLOW = 3U /**< Alias for FiFo overflow occurred */
- };
- /** @enum adcConversionStatus
- * @brief Alias names for conversion status
- * This enumeration is used to provide alias names for the current conversion states:
- * - Conversion is not finished
- * - Conversion is finished
- */
- enum adcConversionStatus
- {
- ADC_CONVERSION_IS_NOT_FINISHED = 0U, /**< Alias for current conversion is not finished */
- ADC_CONVERSION_IS_FINISHED = 8U /**< Alias for current conversion is finished */
- };
- /** @enum adc1HwTriggerSource
- * @brief Alias names for hardware trigger source
- * This enumeration is used to provide alias names for the hardware trigger sources:
- */
- enum adc1HwTriggerSource
- {
- ADC1_EVENT = 0U, /**< Alias for event pin */
- ADC1_HET1_8 = 1U, /**< Alias for HET1 pin 8 */
- ADC1_HET1_10 = 2U, /**< Alias for HET1 pin 10 */
- ADC1_RTI_COMP0 = 3U, /**< Alias for RTI compare 0 match */
- ADC1_HET1_12 = 4U, /**< Alias for HET1 pin 12 */
- ADC1_HET1_14 = 5U, /**< Alias for HET1 pin 14 */
- ADC1_GIOB0 = 6U, /**< Alias for GIO port b pin 0 */
- ADC1_GIOB1 = 7U, /**< Alias for GIO port b pin 1 */
- ADC1_HET2_5 = 1U, /**< Alias for HET2 pin 5 */
- ADC1_HET1_27 = 2U, /**< Alias for HET1 pin 27 */
- ADC1_HET1_17 = 4U, /**< Alias for HET1 pin 17 */
- ADC1_HET1_19 = 5U, /**< Alias for HET1 pin 19 */
- ADC1_HET1_11 = 6U, /**< Alias for HET1 pin 11 */
- ADC1_HET2_13 = 7U, /**< Alias for HET2 pin 13 */
- ADC1_EPWM_B = 1U, /**< Alias for B Signal EPWM */
- ADC1_EPWM_A1 = 3U, /**< Alias for A1 Signal EPWM */
- ADC1_HET2_1 = 5U, /**< Alias for HET2 pin 1 */
- ADC1_EPWM_A2 = 6U, /**< Alias for A2 Signal EPWM */
- ADC1_EPWM_AB = 7U /**< Alias for AB Signal EPWM */
- };
- /** @enum adc2HwTriggerSource
- * @brief Alias names for hardware trigger source
- * This enumeration is used to provide alias names for the hardware trigger sources:
- */
- enum adc2HwTriggerSource
- {
- ADC2_EVENT = 0U, /**< Alias for event pin */
- ADC2_HET1_8 = 1U, /**< Alias for HET1 pin 8 */
- ADC2_HET1_10 = 2U, /**< Alias for HET1 pin 10 */
- ADC2_RTI_COMP0 = 3U, /**< Alias for RTI compare 0 match */
- ADC2_HET1_12 = 4U, /**< Alias for HET1 pin 12 */
- ADC2_HET1_14 = 5U, /**< Alias for HET1 pin 14 */
- ADC2_GIOB0 = 6U, /**< Alias for GIO port b pin 0 */
- ADC2_GIOB1 = 7U, /**< Alias for GIO port b pin 1 */
- ADC2_HET2_5 = 1U, /**< Alias for HET2 pin 5 */
- ADC2_HET1_27 = 2U, /**< Alias for HET1 pin 27 */
- ADC2_HET1_17 = 4U, /**< Alias for HET1 pin 17 */
- ADC2_HET1_19 = 5U, /**< Alias for HET1 pin 19 */
- ADC2_HET1_11 = 6U, /**< Alias for HET1 pin 11 */
- ADC2_HET2_13 = 7U, /**< Alias for HET2 pin 13 */
-
- ADC2_EPWM_B = 1U, /**< Alias for B Signal EPWM */
- ADC2_EPWM_A1 = 3U, /**< Alias for A1 Signal EPWM */
- ADC2_HET2_1 = 5U, /**< Alias for HET2 pin 1 */
- ADC2_EPWM_A2 = 6U, /**< Alias for A2 Signal EPWM */
- ADC2_EPWM_AB = 7U /**< Alias for AB Signal EPWM */
- };
- /* USER CODE BEGIN (1) */
- /* USER CODE END */
- /** @struct adcData
- * @brief ADC Conversion data structure
- *
- * This type is used to pass adc conversion data.
- */
- /** @typedef adcData_t
- * @brief ADC Data Type Definition
- */
- typedef struct adcData
- {
- uint32 id; /**< Channel/Pin Id */
- uint16 value; /**< Conversion data value */
- } adcData_t;
- /* USER CODE BEGIN (2) */
- /* USER CODE END */
- /**
- * @defgroup ADC ADC
- * @brief Analog To Digital Converter Module.
- *
- * The microcontroller includes two 12-bit ADC modules with selectable 10-bit or 12-bit resolution
- *
- * Related Files
- * - reg_adc.h
- * - adc.h
- * - adc.c
- * @addtogroup ADC
- * @{
- */
-
- /* ADC Interface Functions */
- void adcInit(void);
- void adcStartConversion(adcBASE_t *adc, uint32 group);
- void adcStopConversion(adcBASE_t *adc, uint32 group);
- void adcResetFiFo(adcBASE_t *adc, uint32 group);
- uint32 adcGetData(adcBASE_t *adc, uint32 group, adcData_t *data);
- uint32 adcIsFifoFull(adcBASE_t *adc, uint32 group);
- uint32 adcIsConversionComplete(adcBASE_t *adc, uint32 group);
- void adcEnableNotification(adcBASE_t *adc, uint32 group);
- void adcDisableNotification(adcBASE_t *adc, uint32 group);
- void adcCalibration(adcBASE_t *adc);
- uint32 adcMidPointCalibration(adcBASE_t *adc);
- /** @fn void adcNotification(adcBASE_t *adc, uint32 group)
- * @brief Group notification
- * @param[in] adc Pointer to ADC node:
- * - adcREG1: ADC1 module pointer
- * - adcREG2: ADC2 module pointer
- * @param[in] group number of ADC node:
- * - adcGROUP0: ADC event group
- * - adcGROUP1: ADC group 1
- * - adcGROUP2: ADC group 2
- *
- * @note This function has to be provide by the user.
- */
- void adcNotification(adcBASE_t *adc, uint32 group);
- /**@}*/
- /* USER CODE BEGIN (3) */
- /* USER CODE END */
- #endif
|