Probléme inpout32 avec le registre d'etat

Résolu
tims12 Messages postés 9 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 15 août 2009 - 11 août 2009 à 16:01
tims12 Messages postés 9 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 15 août 2009 - 15 août 2009 à 14:46
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

tims12 Messages postés 9 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 15 août 2009
15 août 2009 à 14:46
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
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
11 août 2009 à 19:33
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
0
tims12 Messages postés 9 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 15 août 2009
11 août 2009 à 20:21
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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
11 août 2009 à 21:11
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tims12 Messages postés 9 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 15 août 2009
12 août 2009 à 10:24
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?
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
12 août 2009 à 14:33
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
0
tims12 Messages postés 9 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 15 août 2009
12 août 2009 à 16:15
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.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
12 août 2009 à 17:39
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
0
tims12 Messages postés 9 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 15 août 2009
12 août 2009 à 22:15
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.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
12 août 2009 à 22:50
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
0
tims12 Messages postés 9 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 15 août 2009
13 août 2009 à 14:33
Il est configurer en ECP dans le BIOS ainsi que pour Windows quand je regarde dans le gestionnaire de périphériques.
0
Rejoignez-nous