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

📄 adt700_impl.h

📁 ADT700的小程序
💻 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 + -