begin process at 2012 05 27 21:20:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Applications Linux

 > VOIE PARALLELE COUPLEUR MC 68230 IMPRIMANTE SOUS LINUX

VOIE PARALLELE COUPLEUR MC 68230 IMPRIMANTE SOUS LINUX


 Description

classe permettant le transfert de données entre la voie parrallele d un pc et un coupleur MC 68230
exemple avec une imprimante reliée au coupleur
le tout sous linux

Source

  • PaCoupleur.h
  • #ifndef PACOUPLEUR
  • #define PACOUPLEUR
  • typedef struct{
  • unsigned char offset0,PGCR;
  • unsigned char offset2,PSRR;
  • unsigned char offset4,PADDR;
  • unsigned char offset6,PBDDR;
  • unsigned char offset8,PCDDR;
  • unsigned char offset10,PIVR;
  • unsigned char offset12,PACR;
  • unsigned char offset14,PBCR;
  • unsigned char offset16,PADR;
  • unsigned char offset18,PBDR;
  • unsigned char offset20,PAAR;
  • unsigned char offset22,PBAR;
  • unsigned char offset24,PCDR;
  • unsigned char offset26,PSR;
  • unsigned char offset28,TCR;
  • unsigned char offset30,TIVR;
  • unsigned char offset32,CPRH;
  • unsigned char offset34,CPRM;
  • unsigned char offset36,CPRL;
  • unsigned char offset38,CNTRH;
  • unsigned char offset40,CNTRM;
  • unsigned char offset42,CNTRL;
  • unsigned char offset44,TSR;
  • }coupleur;
  • class PaCoupleur{
  • private:
  • int ID;
  • coupleur *ptcoupleur;
  • bool Etat();
  • public:
  • bool port_ouvert;
  • PaCoupleur();
  • ~PaCoupleur();
  • bool Ecrire(char);
  • };
  • #endif
  • PaCoupleur.cpp
  • #include <iostream>
  • #include <stdio.h>
  • #include <unistd.h>
  • #include <sys/types.h>
  • #include <sys/stat.h>
  • #include <sys/mman.h>
  • #include <fcntl.h>
  • #include "PaCoupleur.h"
  • #define Adbase 0xFFFF1000
  • PaCoupleur::PaCoupleur()
  • {
  • if((ID=open("/dev/mem",O_RDWR))>=0)
  • {
  • ptcoupleur=(coupleur*)mmap(NULL,1024,PROT_READ|PROT_WRITE,MAP_SHARED,ID,Adbase);
  • if(ptcoupleur!=MAP_FAILED)
  • {
  • cout<<hex<<ptcoupleur<<endl;
  • port_ouvert=true;
  • //validation des lignes
  • ptcoupleur->PGCR=0x24;
  • //mode main impulsionnel sous mode 01
  • ptcoupleur->PBCR=0x78;
  • //sortie
  • ptcoupleur->PBDDR=255; //#11111111
  • }
  • else
  • {
  • port_ouvert=false;
  • }
  • }
  • else
  • port_ouvert=false;
  • }
  • PaCoupleur::~PaCoupleur()
  • {
  • if(port_ouvert==true)
  • {
  • //fermeture
  • munmap(ptcoupleur,sizeof(coupleur));
  • close(ID);
  • }
  • }
  • bool PaCoupleur::Etat()
  • //renseigne sur l etat des buffers
  • {
  • return(true);
  • }
  • bool PaCoupleur::Ecrire(char caractere)
  • {
  • ptcoupleur->PBDR=caractere;
  • ptcoupleur->PBDR=0x0d;
  • return(true);
  • }
  • main.cpp
  • #include <iostream>
  • #include <stdio.h>
  • #include <unistd.h>
  • #include <sys/types.h>
  • #include <sys/stat.h>
  • #include <sys/mman.h>
  • #include <fcntl.h>
  • #include "PaCoupleur.h"
  • using namespace std;
  • PaCoupleur *O_PaCoupleur=NULL;
  • int main(void)
  • {
  • char caractere;
  • O_PaCoupleur=new PaCoupleur();
  • if(O_PaCoupleur->port_ouvert==true)
  • {
  • cout<<"Entre la valeur à ecrire: "<<endl;
  • cin>>caractere;
  • O_PaCoupleur->Ecrire(caractere);
  • }
  • else
  • {
  • cerr<<"Erreur d'ouverture de la voie parrallele"<<endl;
  • }
  • delete O_PaCoupleur;
  • }
PaCoupleur.h


#ifndef PACOUPLEUR
#define PACOUPLEUR

typedef struct{
	unsigned char offset0,PGCR;
	unsigned char offset2,PSRR;
	unsigned char offset4,PADDR;
	unsigned char offset6,PBDDR;
	unsigned char offset8,PCDDR;
	unsigned char offset10,PIVR;
	unsigned char offset12,PACR;
	unsigned char offset14,PBCR;
	unsigned char offset16,PADR;
	unsigned char offset18,PBDR;
	unsigned char offset20,PAAR;
	unsigned char offset22,PBAR;
	unsigned char offset24,PCDR;
	unsigned char offset26,PSR;
	unsigned char offset28,TCR;
	unsigned char offset30,TIVR;
	unsigned char offset32,CPRH;
	unsigned char offset34,CPRM;
	unsigned char offset36,CPRL;
	unsigned char offset38,CNTRH;
	unsigned char offset40,CNTRM;
	unsigned char offset42,CNTRL;
	unsigned char offset44,TSR;
}coupleur;

class PaCoupleur{
private:
int ID;
coupleur *ptcoupleur;
bool Etat();
public:
bool port_ouvert;
PaCoupleur();
~PaCoupleur();
bool Ecrire(char);
};

#endif







PaCoupleur.cpp


#include <iostream>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <fcntl.h>
#include "PaCoupleur.h"

#define Adbase 0xFFFF1000

PaCoupleur::PaCoupleur()
{
	if((ID=open("/dev/mem",O_RDWR))>=0)
	{
		ptcoupleur=(coupleur*)mmap(NULL,1024,PROT_READ|PROT_WRITE,MAP_SHARED,ID,Adbase);
		if(ptcoupleur!=MAP_FAILED)
		{
		cout<<hex<<ptcoupleur<<endl;
		port_ouvert=true;
	//validation des lignes	
	ptcoupleur->PGCR=0x24;
		//mode main impulsionnel sous mode 01
		ptcoupleur->PBCR=0x78;
	

		//sortie
		ptcoupleur->PBDDR=255; //#11111111
		}
		else
		{
		port_ouvert=false;
		}
	}
	else
	port_ouvert=false;
}

PaCoupleur::~PaCoupleur()
{
	if(port_ouvert==true)
	{
	//fermeture
	munmap(ptcoupleur,sizeof(coupleur));
	close(ID);
	}
}

bool PaCoupleur::Etat()
//renseigne sur l etat des buffers
{
	return(true);
}

bool PaCoupleur::Ecrire(char caractere)
{
	ptcoupleur->PBDR=caractere;
	ptcoupleur->PBDR=0x0d;
        
	return(true);
}









main.cpp


#include <iostream>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <fcntl.h>
#include "PaCoupleur.h"



using namespace std;

PaCoupleur *O_PaCoupleur=NULL;

int main(void)
{
	char caractere;
	O_PaCoupleur=new PaCoupleur();
	if(O_PaCoupleur->port_ouvert==true)
	{
		cout<<"Entre la valeur à ecrire: "<<endl;
		cin>>caractere;
		O_PaCoupleur->Ecrire(caractere);
	}
	else
	{
		cerr<<"Erreur d'ouverture de la voie parrallele"<<endl;
	}
	delete O_PaCoupleur;
}














 Sources du même auteur

CLASSE FILE UTILISANT UN TABLEAU
CLASSE PILE UTILISANT UN TABLEAU
CALCUL PUISSANCE PAR FONCTION RECURSIVE
CALCUL FACTORIEL PAR FONCTION RECURSIVE
TRI DE FICHES

 Sources de la même categorie

Source avec Zip TRAITEMENT D'IMAGE PGM par Jios
Source avec une capture COLORIMÈTRE NUMÉRIQUE LINUX par valchek
Source avec Zip TRAITEMENTS D'IMAGES AU FORMAT PGM AVEC LES ALGORITHMES DE C... par lemout
Source avec Zip ALGORITHME ACO INTERFACE GTK par RyBeN
Source avec Zip COMPRESSER SES SAUVEGARDES SMSBACKUPRESTORE (ANDROID) EN C A... par ThalLab

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales