⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc_interface.h

📁 基于MMA7260QR2的跌落检查程序
💻 H
📖 第 1 页 / 共 2 页
字号:
/************************************************************************************
* Public header file for the Adc driver.
*
* Author(s): B04839
*
* (c) Copyright 2006, Freescale, Inc.  All rights reserved.
*
*
* No part of this document must be reproduced in any form - including copied,
* transcribed, printed or by any electronic means - without specific written
* permission from Freescale.
*
Revision history:
   date                             Author                            Comments
   ----------               ----------------------                    -------
   12.12.2006                    B04839                            Created
************************************************************************************/
#ifndef _ADC_INTERFACE_H_
#define _ADC_INTERFACE_H_

/************************************************************************************
*************************************************************************************
* Public macros
*************************************************************************************
************************************************************************************/
#define FIFO_DEEP             7
#define FIFO_STAT_LEVEL_MASK  0x0007
#define CTRL_ON               0x0001

#define DEFAULT_ON_TIME       8    
#define DEFAULT_CONV_TIME     40

#define Adc_DefaultConfig(adcConfig, oscVal) \
  adcConfig.adcPrescaler = (((uint16_t)((oscVal) / 1000)) - 1), adcConfig.adcDivider = (((uint16_t) ((oscVal) / 300)) - 1), \
  adcConfig.adcOnPeriod = DEFAULT_ON_TIME, adcConfig.adcConvPeriod = DEFAULT_CONV_TIME, \
  adcConfig.adcCompIrqEn = FALSE, adcConfig.adcFifoIrqEn = FALSE, adcConfig.adcMode = gAdcAutoControl_c


#define Adc_TurnOn()        ADC.Control |= CTRL_ON
#define Adc_TurnOff()       ADC.Control &= ~CTRL_ON
#define Adc_FifoData()      (ADC.FifoRead)
#define Adc_FifoLevel()     (ADC.FifoStatus & FIFO_STAT_LEVEL_MASK)
#define Adc_ChnTriggered()  (ADC.Triggers)
/************************************************************************************
*************************************************************************************
* Public prototypes
*************************************************************************************
************************************************************************************/
/*ADC module status parameters definition*/
/************************************************************************************
*************************************************************************************
* Public type definitions
*************************************************************************************
************************************************************************************/
typedef enum {
  gAdcErrNoError_c = 0,
  gAdcErrWrongParameter,
  gAdcErrNullPointer_c,
  gAdcErrModuleBusy_c,
  gAdcInvalidOp_c,
  gAdcErrMax_c
}AdcErr_t;

typedef enum {
  gAdcChan0_c = 0,
  gAdcChan1_c,
  gAdcChan2_c,
  gAdcChan3_c,
  gAdcChan4_c,
  gAdcChan5_c,
  gAdcChan6_c,
  gAdcChan7_c,
  gAdcBatt_c,
  gAdcMaxChan_c
}AdcChannel_t;

typedef enum {
  gAdcPrimary_c = 0,
  gAdcSecondary_c,
  gAdcMaxModule_c
}AdcModule_t;

typedef enum {
  gAdcModuleOff_c = 0,
  gAdcModuleOn_c
}AdcModuleStatus_t;

typedef enum {
  gAdcAutoControl_c = 0,
  gAdcManualControl_c
}AdcMode_t;

typedef enum {
  gAdcCompGrater_c = 0,
  gAdcCompLess_c
}AdcCompType_t;

typedef enum {
  gAdcSeqOnConvTime_c = 0,
  gAdcSeqOnTmrEv_c
}AdcSeqMode_t;

typedef enum {
  gAdcInactiveChan_c = 0,
  gAdcActiveChan_c
}AdcChanStatus_t;

typedef enum {
  gAdcBatteryRefVoltage_c = 0,
  gAdcExtRefVoltage_c
}AdcRefVoltage_t;

typedef enum {
  gAdcFifoEmpty_c = 0,
  gAdcFifoFull_c,
  gAdcFifoFilled_c
}AdcFifoStatus_t;

typedef enum {
  gAdcCompEvent_c = 0,
  gAdcSeq1event_c,
  gAdcSeq2event_c,
  gAdcFifoEvent_c,
  gAdcMaxEvent_c
}AdcEvent_t;

typedef struct{
  uint8_t          adcPrescaler;
  uint8_t          adcDivider;
  uint16_t         adcOnPeriod;
  uint16_t         adcConvPeriod;
  bool_t           adcCompIrqEn;
  bool_t           adcFifoIrqEn;
  AdcMode_t        adcMode;
}AdcConfig_t;

typedef struct{
  bool_t           adcTmrOn;
  bool_t           adcSeqIrqEn;
  uint16_t         adcChannels;
  uint32_t         adcTmBtwSamples;
  AdcSeqMode_t     adcSeqMode;
  AdcRefVoltage_t  adcRefVoltage;
}AdcConvCtrl_t;

typedef struct{
  AdcChannel_t     adcChannel;
  AdcCompType_t    adcCompType;
  uint16_t         adcCompVal;
}AdcCompCtrl_t;

typedef struct{
  AdcChannel_t     adcChannel;
  uint16_t         adcValue;
}AdcFifoData_t;

typedef  void (*AdcEvCallback_t)(void);

/************************************************************************************
*************************************************************************************
* Public memory declarations
*************************************************************************************
************************************************************************************/

/************************************************************************************
*************************************************************************************
* Public functions
*************************************************************************************
************************************************************************************/

/*================================================================================================*/
/*===== Adc_Init =====*/
/**
@brief  The function is called to initialize the ADC driver. Must be called before any further access.

@param  None

@return None

 Revision history:
      Date                          Author                            Comments
   ----------               ----------------------                    -------
   31.07.2007                       B04839                             Created
*/
extern void Adc_Init(void);

/*================================================================================================*/
/*===== Adc_Reset =====*/
/**
@brief  The function is called to reset the ADC hardware.

@param  None

@return None

 Revision history:
      Date                          Author                            Comments
   ----------               ----------------------                    -------
   31.07.2007                       B04839                             Created
*/
extern void Adc_Reset(void);

/*================================================================================================*/
/*===== Adc_SetConfig =====*/
/**
@brief  Set the parameters for the ADC peripheral.

@param  const AdcConfig_t *adcConfig        - input parameter: pointer to a structure containing the 
                                              configuration parameters.

@return parameter of type AdcErr_t with following possible values:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -