📄 task28xadc.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 + -