📄 adt700_impl.h
字号:
// ADT700_Impl.h: interface for the CADT700_Impl class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ADT700_IMPL_H__AA4BA8C0_C140_491F_8B05_3CBFE441C299__INCLUDED_)
#define AFX_ADT700_IMPL_H__AA4BA8C0_C140_491F_8B05_3CBFE441C299__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <windows.h>
#include <winioctl.h>
#define ENABLED 1
#define DISABLED 0
#define BIPOLAR 0
#define UNIPOLAR 1
#define INPUT 1
#define OUTPUT 0
#define TRUE 1
#define FALSE 0
#define HIGH 1
#define LOW 0
#define START_CONVERSION 0
#define READ_AD_DATA_LSB 0
#define READ_AD_DATA_MSB 1
#define CHANNEL_RANGE 3
#define CONFIG_BYTE 4
#define STATUS_BUSY_INT 5
#define ENABLE_IRQ 6
#define WRITE_DA_DATA_LSB 1
#define WRITE_DA_DATA_MSB 2
#define PARALLEL_ENABLE_DA 2
#define PPI_0 8
#define PPI_1 9
#define PPI_2 10
#define PPI_CTRL 11
#define TIMER_0 12
#define TIMER_1 13
#define TIMER_2 14
#define TIMER_CTRL 15
#define GATHERNUM 20
#define CHANNELNUM 16
typedef struct _FRENQUENCY
{
long nLastTime;
int nLastNum; //上次计数的值
float fFrequency; //频率
int nMaxCounter;
}FRENQUENCY;
class CADT700_Impl
{
public:
HANDLE m_hISTInterruptEvent;
BOOL m_fRun;
DWORD m_SysIntr;
HANDLE m_BaseAddr;
float m_fGatheredVolt[GATHERNUM][CHANNELNUM]; //存储采集到的数据
int m_nDataStoreIndex; //the position index of data store
unsigned int m_Channel;
FRENQUENCY m_arrFrequency[6];
private:
BOOL m_fIsMapped;
float m_VoltageRange;
float m_ConversionFactor;
float m_Baseline ;
int m_nUseNumber;
int ErrorCode;
public:
BOOL AverageOneData(int nIndex, float &fReValue);
bool m_bBusy;
UINT m_nTimerID;
BOOL ADT700_CalAllTimerFrequency();
HANDLE ADT700_DevLoad();
BOOL ADT700_InitBoard();
BOOL ADT700_DevClose();
// unsigned char ReadIOPort(unsigned int portAddr);
// void WriteIOPort(unsigned int portAddr,unsigned int byte);
void ADT700_ADSettings(float Range, char Polarity);
float ADT700_DigitToSBS(int DigitalValue);
void ADT700_ClearIRQ();
void ADT700_SetChannel(unsigned int ChannelL, unsigned int ChannelH);
void ADT700_StartConversion();
char ADT700_ConversionDone();
void ADT700_EnableIRQ();
void ADT700_DisableIRQ();
void ADT700_SelIRQSource(unsigned char IrqSou);
void ADT700_ADDAConfig(unsigned char DAout, unsigned char Timer5Con,
unsigned char DMACon,unsigned char ADTrig,unsigned char GainCon);
void ADT700_WriteDataDA(unsigned int DAChannel, int DigitalValue);
void ADT700_FourDAPalEn();
unsigned char ADT700_ChannelSwitch();
unsigned char ADT700_IRQStatus();
int ADT700_ReadData();
void ADT700_ClockMode(unsigned char Chip,unsigned char Clock, unsigned char Mode);
void ADT700_ClockDivisor(unsigned char Chip,unsigned char Clock, unsigned int Divisor);
unsigned int ADT700_ClockReadBack(unsigned char Chip,unsigned char Timer);
char ADT700_ReadPITStatus(unsigned char Chip,unsigned char Timer);
unsigned char ADT700_ReadDigitIO(unsigned char InputPort);
void ADT700_WriteDigitIO(unsigned char OutputPort, unsigned char v);
void ADT700_ConfigIOPorts(unsigned char Port0, unsigned char Port1,unsigned char Port2H,unsigned char Port2L);
CADT700_Impl();
virtual ~CADT700_Impl();
private:
void WriteErrorMsg();
};
#endif // !defined(AFX_ADT700_IMPL_H__AA4BA8C0_C140_491F_8B05_3CBFE441C299__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -