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

📄 bt8xxaccess.hpp

📁 bt848,bt878 a采集卡的探测
💻 HPP
字号:
#ifndef __BT8XXACCESS_HPP
#define __BT8XXACCESS_HPP

#include "CLibrary.hpp"
#include "DSDrv.h"	// DScaler driver...

// Our class to access the Bt8xx hardware registers
class CBt8xxAccess {

private:
	CLibrary	DLL;			// The DLL we use if we can't find the VXD
	
	DWORD		dwChip;			// Chip model
	DWORD		dwRevision;		// Revision number of the Chip
	DWORD		dwSubsystem;	// Subsystem of the chip (if present)

	// Pointers to the required fns of the DLL
	struct { 
		PIsDriverOpened				isDriverOpened;
		PPCIGetHardwareResources	pciGetHardwareResources;
		PMemoryAlloc				memoryAlloc;
		PMemoryFree					memoryFree;
		PMemoryMap					memoryMap;
		PMemoryMap					memoryUnmap;
		PMemoryRead					memoryReadBYTE;
		PMemoryRead					memoryReadWORD;
		PMemoryRead					memoryReadDWORD;
		PMemoryWrite				memoryWriteBYTE;
		PMemoryWrite				memoryWriteWORD;
		PMemoryWrite				memoryWriteDWORD;
	} dTVDrv;

	DWORD						dwMemoryBase;		// The base address to access the Bt8xx hardware
	DWORD						dwMemoryLength;
	DWORD						dwPhysicalAddress;	// Physical Address of the registers of the Bt8xx chip

public:

	CBt8xxAccess();
	~CBt8xxAccess();

	bool IsInitOK() const { return dwMemoryBase != 0; }
		
	// To access memory Mapped registers of the Btxxx chipset
	DWORD ReadDWORD(const DWORD Offset) { return dTVDrv.memoryReadDWORD(Offset) ; }
	void  WriteDWORD(const DWORD Offset,const DWORD Value) { dTVDrv.memoryWriteDWORD(Offset,Value); }
	WORD  ReadWORD(const DWORD Offset) { return WORD(dTVDrv.memoryReadWORD(Offset)) ; }
	void  WriteWORD(const DWORD Offset,const WORD Value) { dTVDrv.memoryWriteWORD(Offset,Value); }
	BYTE  ReadBYTE(const DWORD Offset) { return BYTE(dTVDrv.memoryReadBYTE(Offset)) ; }
	void  WriteBYTE(const DWORD Offset,const BYTE Value) { dTVDrv.memoryWriteBYTE(Offset,Value); }

	// Some functions to access the internal data
	DWORD ChipModel() const { return dwChip; }
	DWORD ChipRevision() const { return dwRevision; }
	DWORD ChipSubsystem() const { return dwSubsystem; }

	// Some useful fns to access the hardware!
	DWORD GetGPDATA() { return ReadDWORD(0x200) & 0xFFFFFF; }
	DWORD GetGPOE() { return ReadDWORD(0x118) & 0xFFFFFF; } 
	DWORD GetMux() { return (ReadBYTE(0x004) & 0x60) >> 5; }
};


#endif

⌨️ 快捷键说明

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