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

📄 task28xadc.h

📁 cap口例程
💻 H
字号:
/*
*********************************************************************************************************
*                                          Analog I/O Module
*
*                            (c) Copyright 1999, Jean J. Labrosse, Weston, FL
*                                          All Rights Reserved
*
* Filename   : AIO.H
* Programmer : Jean J. Labrosse
*********************************************************************************************************
*/

#ifdef   ADC_GLOBALS
#define  ADC_EXT
#else
#define  ADC_EXT extern
#endif

/*
*********************************************************************************************************
*                                        CONFIGURATION CONSTANTS
*********************************************************************************************************
*/

#ifndef  CFG_H

#define  ADC_TASK_PRIO             40
#define  ADC_TASK_DLY             100       /* Task execution period in milliseconds                   */
#define  ADC_TASK_STK_SIZE        512

#define  ADC_MAX_AI                 8       /* Maximum number of Analog Input  Channels (1..250)       */

#endif
/*$PAGE*/
/*
*********************************************************************************************************
*                                            DATA TYPES
*********************************************************************************************************
*/

typedef struct adc {                        /* ANALOG I/O CHANNEL DATA STRUCTURE                       */
    BOOLEAN   ADCBypassEn;                  /* Bypass enable switch (Bypass when TRUE)                 */
    INT16S    ADCRaw;                       /* Raw counts of ADC                                       */
    FP32      ADCEU;                        /* Engineering units of AI channel                         */
    FP32      ADCGain;                      /* Total gain   (ADCCalGain   * ADCConvGain)               */
    FP32      ADCOffset;                    /* Total offset (ADCCalOffset + ADCConvOffset)             */
    INT8U     ADCPassCnts;                  /* Pass counts                                             */
    INT8U     ADCPassCtr;                   /* Pass counter (loaded from PassCnts)                     */
    FP32      ADCCalGain;                   /* Calibration gain                                        */
    FP32      ADCCalOffset;                 /* Calibration offset                                      */
    FP32      ADCConvGain;                  /* Conversion gain                                         */
    FP32      ADCConvOffset;                /* Conversion offset                                       */
    FP32      ADCScaleIn;                   /* Input  to   scaling function                            */
    FP32      ADCScaleOut;                  /* Output from scaling function                            */
    void    (*ADCScaleFnct)(struct aio *paio);   /* Function to execute for further processing         */
    void     *ADCScaleFnctArg;                   /* Pointer to argument to pass to 'ADCScaleFnct'      */
} ADC;

/*
*********************************************************************************************************
*                                          GLOBAL VARIABLES
*********************************************************************************************************
*/

ADC_EXT   ADC      ADCTbl[ADC_MAX_AI];

/*$PAGE*/
/*
*********************************************************************************************************
*                                          FUNCTION PROTOTYPES
*********************************************************************************************************
*/

void     AdcInit(void);

INT8U    AdcCfgCal(INT8U n, FP32 gain, FP32 offset);
INT8U    AdcCfgConv(INT8U n, FP32 gain, FP32 offset, INT8U pass);
INT8U    AdcCfgScaling(INT8U n, void (*fnct)(ADC *paio), void *arg);
INT8U    AdcSetBypass(INT8U n, FP32 val);
INT8U    AdcSetBypassEn(INT8U n, BOOLEAN state);
INT8U    AdcGet(INT8U n, FP32 *pval);


void     AdcInitIO(void);                        /* Hardware dependant functions                       */
INT16S   AdcRd(INT8U ch);

⌨️ 快捷键说明

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