Probléme inpout32 avec le registre d'etat [Résolu]

Signaler
Messages postés
9
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
15 août 2009
-
Messages postés
9
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
15 août 2009
-
Bonjour a tous,

Je doit réaliser une girouette électronique pour l'école et je dois communiquer avec elle par le port parallèle d'un pc. J'ai besoin que de recueillir les information de la girouette qu'elle m'envoie sur les bornes 10-11-12-13 d'un DB 25.

Je me suis renseigner sur votre site et j'ai vu que je doit utiliser la dll inpout32. J'ai aussi télécharger des programme source pour voire comment sa fonctionne.

Tout marche impec sauf pour le registre d'état qui reste toujours a 127 en décimal a lors que celui-ci devrai varier vu que mais files y sont connectés.

je vous remercie d'avance pour vos réponse ^^.

11 réponses

Messages postés
9
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
15 août 2009

slt,

Voila le problème est résolu. ^^
Étant donnée que ma girouette et le port // envoyait tout les deux +5V l'un contre l'autre, le seul moyen est de passer par un petit montage.

Voir ici

Ps: merci encore pour ton aide casy
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
C'est étonnant que tu obtienne 127. Normalement en l'absence de signal tu devrais avoir 0. Tu ne lis peut-être pas la bonne adresse.

Le registre d'état est accessible à l'adresse &H379 (pour un port // en &h378)


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
9
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
15 août 2009

Oui c'est très étonnant d'autant plus que se sont des ports d'entrée. Pourtant j'utilise bien l'adresse &H379 comme tu la dit pour le registre d'état pourtant j'obtiens encore et toujours 127.

Si on en croit ce site : http://1100f.free.fr/le_port_parallele.txt
Normalement sens rien connecter je devrai obtenir 134 car le bit 1 et 2 sont inutilisés et reste a 1, ensuite le bit N°7 busy (dernier bit ==> poids fort) est a 1 pour un zéro logique.

nous obtenons donc:
7 6 5 4 3 2 1 0
1 0 0 0 0 1 1 0 = 134
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Pour ma part j'obtiens en valeur de registre 00001110 au repos avec une imprimante connectée en état de marche


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
9
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
15 août 2009

Oki merci, j'ai fait la même démarche de mon coté.

Mon registre d'état quand mon imprimante est au repos vaut 233 (11011111).
Quand je lance une impression et que je retire le papier j'ai 63 (00111111).
Lors d'une impression j'ai 31 (00011111).

Du coup je commence a douter sur mon code:

Dim PortAddress as Integer
Dim valeur_reg_etat as Integer

PortAddress = &H378

valeur_reg_etat = Inp(PortAddress + 1) 


Est ce bon?
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Bon après quelques tests, et malgré un petit boitier mouchard branché sur le port // j'obtiens toujours des résultats farfelus sur ma machine, sans aucun rapport avec la théorie. Seul le port DATA fonctionne à peu près correctement.

Je n'y comprend plus rien

[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
9
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
15 août 2009

slt,

Merci pour ton aide casy

je me demande quand on connecte une imprimante, si celle-ci envoie un "message" au pc.
Message du genre "Slt je suis connecter a ton port LPT1, initialise le".

Le truc vraiment curieux aussi, c'est que les ports du registre d'état sont normalement que purement des entrées et pourtant ils envoient quand même du +5V .

Bah au pire je n'aurai qu'a connecter les files de la girouette sur le port des données.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
je me demande quand on connecte une imprimante, si celle-ci envoie un "message" au pc.
Message du genre "Slt je suis connecter a ton port LPT1, initialise le".

Il y a quelque chose de ce style, puisque lorsque tu connecte une imprimante (sur un port plug & play tout au moins) elle est immédiatement détectée et le système recherche et installe si nécessaire les drivers correspondant.
Quant à expliquer concrètement le fonctionnement, je ne pas les informations pour.

c'est que les ports du registre d'état sont normalement que purement des entrées et pourtant ils envoient quand même du +5V

C'est vrai, mais ce +5V n'est qu'illusoire. Si tu as quelques notions d'électronique, c'est la technique du collecteur ouvert (ou pull-up) qui est normalement utilisée pour les entrées. Cette technique permet effectivement d'appliquer une tension sur une entrée en l'absence de signal pour éviter qu'elle ne capte trop tous les parasites qui passent qui pourraient perturber les circuits électroniques derrières. Cette tension n'est pas assez "puissante" pour perturber un signal branché sur l'entrée.
D'ailleurs sur ce type d'entrées, les signaux sont de simples "interrupteurs électroniques" qui connecte l'entrée à la masse pour un 0 et laisse "en l'air" l'entrée pour un 1 (mais peut aussi appliquer un vrai +5V)

Bah au pire je n'aurai qu'a connecter les files de la girouette sur le port des données
Tu pensera dans ce cas à commuter le port de données en entrée
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
9
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
15 août 2009

Tu pensera dans ce cas à commuter le port de données en entrée

Hum tu fait bien de me dire ça, car je n'ai aucune idée de comment on peut le faire.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
6ème bit du registre de controle (&h37a) à mettre à 1 pour le port Data en entrée, à 0 pour le port Data en sortie (valeur par défaut).

Ton port // doit être configuré sous XP soit en bidirectionnel, soit en EPP, soit en ECP (il y a des chances qu'il soit en ECP)


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
9
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
15 août 2009

Il est configurer en ECP dans le BIOS ainsi que pour Windows quand je regarde dans le gestionnaire de périphériques.