utiliser le port parallele en C
Par guillaume le dimanche, octobre 12 2008, 00:06 - Programmation - Lien permanent
Même si le port parallèle est en voie de disparition, il reste néanmoins bien pratique (surtout lorsque l'on fait de l'électronique!).
Voici quelques bouts de code pour l'utiliser sous windowsXP
Comme il n'est pas possible d'accéder directement aux registres matériels sous XP. Il faut passer par une librairie, j'utilise inpout qui marche parfaitement.
Elle est téléchargeable à cette adresse:
http://www.logix4u.net/inpout32.htm
L'archive contient en plus d'une DLL, des fichiers d'exemples destinés au compilateur Borland mais ils se compilent sans modif sous DevCPP
(Ne pas oublier de linker inpout32.dll).
Voici les trucs a savoir pour utiliser un port parallèle
il y a 3 registres à utiliser:
- Registre de données (1 adresse de lecture et 1 adresse d'écriture)
- Registre de status
- Registre de contrôle
L'adresse du port est généralement 0x378, mais ça peut changer selon la machine!
L'écriture d'une donnée se fait en 0x378 (l'adresse du port) La lecture d'une donnée se fait en 0x378 + 7
le registre de contrôle (adresse 0x378 +2)
- bit 0 : /strobe
- bit1 : /auto linefeed
- bit2 : /init
- bit3 : /select printer
le registre de status (adresse 0x378 +1)
- bit7 : busy
- bit6 : ack
- bit5 : paper out
- bit4 : select in
- bit3 : error
Écriture des data
(oup32)(0x378,toto);
Lecture des data
toto = (inp32)(0x378 + 7);
pour plus d'info:
www.beyondlogic.org/spp/parallel.htm