Architecture TP classe PIA PC C++ 05/12/01
David Saint-Mellion Page 1/2
Classe E-S TOR
L’objectif est de développer une classe pour exploiter les fonctionnalités d’un Port
Entrée/Sortie TOR d’un composant du type 6821 implanté dans un environnement x86 et dans le domaine mémoire de I-O. La classe est implémentée avec le langage C++.
Modèle de la classe
PortPiaPc - adresseDeBase : short
- adresseORx : short - adresseDDRx : short - adresseCRx : short
+ PortPiaPc (adresse :short, direction : unsigned char) : void + ecrire(adresse : short, valeur : unsigned char) : void + ecrireORx(valeur : unsigned char) : void
+ lire(adresse : short) : unsigned char + lireORx() : unsigned char
+ isolerBitsORx(masque : unsigned char) : unsigned char
+ isolerBits(adresse : short, masque : unsigned char) : unsigned char + affecterABit(adresse :short, valeur:boolean, masque :unsigned char) :void + affecterABitORx(valeur : boolean, masque : unsigned char) : void
Eléments descriptifs des méthodes
constructeur ( valeur de l’adresse de Base du Port, valeur d’initialisation de la direction des bornes du Port)
- Initialise tous les attributs
- Place la valeur 00h dans le registre de données - Initialise la valeur du registre de Direction
- Positionne CRA pour accéder au registre de données ecrire( adresse du Registre, Valeur)
lire ( adresse du Registre)
– retourne la valeur du registre
isolerBits ( adresse du Registre, Valeur du masque pour isoler la valeur des bits ) - la méthode retourne la valeur correspondant à la valeur isolée
- les bits masqués prennent pour valeur " 0 "
affecterABit (adresse du Registre, Valeur du bit (0/1), Valeur du masque du bit ) - le bit qui doit être affecté est signalé par la valeur 1 dans "Valeur du
masque du bit"
Architecture TP classe PIA PC C++ 05/12/01
David Saint-Mellion Page 2/2
Les méthodes suivantes affectent le registre de données Orx :
§ écrireORx(Valeur),
§ lireORx (),
§ isolerBitsORx (Valeur du masque pour isoler la valeur des bits ),
§ affecterABitORx (Valeur du bit (0/1), Valeur du masque du bit ).
Les attributs sont privés et les méthodes sont publiques
Développement :
1. Créez l’enveloppe de la classe avec tous les attributs et seulement le constructeur.
§ Développez le corps du constructeur.
§ Mettez en œuvre la classe.
§ Tester et valider le constructeur en utilisant le Port PIA2 de la cible.
2. Enrichir la classe avec les méthodes ci-dessous. Vous procéderez en 3 étapes A à C, en suivant la procédure suivante pour chaque étape :
§ Enrichir la classe avec la méthode.
§ Développer le corps de la méthode.
§ Tester et valider la classe en utilisant le Port PIA2 de la cible.
Etapes :
A - ecrireORx(valeur : unsigned char) : void et lireORx() : unsigned char B - isolerBitsORx(masque : unsigned char) : unsigned char
C - affecterABitORx(valeur : boolean, masque : unsigned char) : void
3. Mettez en œuvre la classe dans un programme pour réaliser les fonctions suivantes : Out=Y et S3 = pas X1
4. Enrichir la classes avec les méthodes nécessaires pour accéder à l’attribut CRx, afin de connaître la configuration et pouvoir modifier cette valeur.
§ Enrichir la classe avec les méthodes.
§ Développer le corps des méthodes.
§ Tester et valider les classes en utilisant le Port PIA2 de la cible.
5. La carte PIA est comprend 2 composants PIA qui permet d’exploiter 4 Ports.
§ Proposez le modèle d’une classe CartePiaPC qui met en œuvre la classe PortPiaPc.
§ Développez et testez cette nouvelle classe.