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

📄 eppio.cpp

📁 基于并口的波形发生器
💻 CPP
字号:
#include "stdafx.h"
#include "EPPIO.h"
#include "io.h"

void EPPIO::StartIO()
{
	if (LoadIODLL() == -1)
	{
		AfxMessageBox("error load iodll");
	}	

	if(IsDriverInstalled() == NULL )
	{
		AfxMessageBox("driver uninstalled");
	}
	
}

void EPPIO::InitEPP()
{
	PortOut(BASE_ADDRESS + 2, 0xF4);  // write xxxx0100 to control port 
	EPP_WriteAddress(0xFF);

}

int EPPIO::Init8253(int freqency)
{
	if (freqency <=65535 && freqency>=0)
	{
		int Mask = 0xff;
	    char LowByte = freqency&Mask;
		freqency =freqency >> 8;
		char HighByte = freqency&Mask;

		EPP_WriteAddress(0xCF); // select 8253, and A1A0=11, select control port
		
		EPP_WriteData(0x3E);   // write control byte to control port
		                       //select count0, write low byte first, in mode 3
		                       //in binary form
		EPP_WriteAddress(0xEF); // set A1A0 to 00, to initialize count 0
		EPP_WriteData(LowByte); // write lowbyte first
		EPP_WriteData(HighByte);// then write lowbyte 

		return 1;

	}
	else 
		return 0;	

}

void EPPIO::StartGenWave()
{
	EPP_WriteAddress(0x20); 
}

void EPPIO::FalseReadRam(char address)
{
	//write address 
	EPP_WriteAddress(0xF8); // enable 273 
	EPP_WriteData(address); // load address to the address pin of 6116
	EPP_WriteData(address);
	
	//read data
	//there are errors!!!!!!!!!!!!!!!!!!!!!!!!!!!!
	EPP_WriteAddress(0x38) ; //enable ram and it's OE and disable 245

	//int result = EPP_ReadData();
	//   result = EPP_ReadData();
	   //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
	//return result;
}

void EPPIO::WriteRam(char address, char data)
{
	//write address 
	EPP_WriteAddress(0xF8); // enable 244  
	EPP_WriteData(address); // load address to the address pin of 6116
	EPP_WriteData(address);

	//write data
	EPP_WriteAddress(0x78);// enable ram and disable 373
	EPP_WriteData(data);  // load data to the data pin of ram
	EPP_WriteData(data);
}

	

void EPPIO::EPP_WriteData(char data)
{
	// write data to epp data register
	PortOut(BASE_ADDRESS + 4, data);
}

char  EPPIO::EPP_ReadData()
{
	 char result = PortIn(BASE_ADDRESS + 4 );
	return result;
}

void EPPIO::EPP_WriteAddress(char address)
{
	PortOut(BASE_ADDRESS + 3, address);
}

void EPPIO::SPP_WriteData(char data)
{
	PortOut(BASE_ADDRESS, data);
}

⌨️ 快捷键说明

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