Bonjour,
J'ai fais un programme ('progdebase') avec lequel je communique avec une carte d'entrées-sorties pci. J'utilise les fonctions de la dll du constructeur pour aller écrire et lire sur le port d'adresse de ma carte. Les fonctions d'écriture et de lecture sont assez lourdes :
pour envoyer un mot à la carte : pci_do8(56444,mot à envoyer)
pour lire une valeur sur la carte : pci_di8(56444).
J'aimerais donc "transformer" pci_di8(56444) en une fonction simple 'entree'
et pci_do8(56444,mot à envoyer) en sortie(mot à envoyer). Le but serait de développez ça sur une autre unité (que j'ai appelée 'apel').
J'ai réussi à faire ma fonction sortie(i), mais je ne m'en sors pas avec la fonction d'entrée.
Pouvez-vous m'aider ?
Je vous laisse le code du programme principal et ma petite unité apel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
program progdebase;
 
{$APPTYPE CONSOLE}
 
uses
P16R16,windows,apel;
 
var a,i:integer;
 
begin
 
i:=1;
 
repeat
sortie(i);
i:=2*i;
writeln('valeur entree ',entree);
sleep(500);
if i=256 then i:=1;
until a=1;
 
end.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
unit apel;
 
interface
 
uses SysUtils, P16r16, windows;
 
var wTotalBoard:word;
entree:integer;
 
function sortie(w:integer):word;
 
implementation
 
 
function sortie(w:integer):word;
begin
pci_do8(56444,w);
end;
 
begin
PCI_DriverInit(wTotalBoard);
end.