IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Commander une LED reliée au port //


Sujet :

C

  1. #1
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut Commander une LED reliée au port //
    Salut,

    J'ai fait le montage suivant sur mon port parallèle (vu de face côté soudure) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
                         +------+  
           D7  ...       |D0    |
                         |      |
     * * * * * * * * * * * *    |  
      * * * * * * * * * * *     |
      |GND                      |
      +-----------/\/\/----O----+
                    R      LED
    Mais le problème est que sous GNU/Linux comme sous windows XP sp2 et peut importe la broche data D0 à D7 raccordée j'ai toujours la diode qui ne fonctionne que quand j'envois un 0x20 (6 ème bit à 1, le reste ne change rien) sur le port 0x37A, à quoi cela peut être dû ?

    Merci.
    To start press any key. (reading screen) Where's the "any" key? I see Esc, Catarl, and Pig Up. There doesn't seem to be any "any" key. Wo! All this computer hacking is making me thirsty. I think I'll order a Tab. (presses TAB key). -- HOMER --

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Ben... Au fait que tu tapes dans le port CONTROL au lieu du port DATA, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #define DATA 0x378
    #define STATUS 0x379
    #define CONTROL 0x37a
    Mets 0x378, ça devrait mieux marcher normalement. En plus, les trois bits de poids fort du registre de contrôle ne sont normalement pas assignés, donc écrire dedans est rarement une bonne idée.

    Côté mapping, tu as ça :


    Tu trouveras aussi un mapping des registres sur ce document, page 96, si tu n'as pas la Bible du PC sous le coude.

    Normalement, pour émettre des données, tu dois écrire l'octet dans le registre DATA, puis activer le bit STROBE du registre CONTROL (bit de poids faible). Attention, ce bit est en logique inverse, il faut le mettre à zéro pour valider les lignes de données. Tu es normalement censé laisser le STROBE à zéro au moins une microseconde, puis le remettre à un pour éviter d'émettre deux fois le même octet.


    (Source : "Bible du PC - Programmation système", 4ème édition, Micro Application)
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    En plus, les trois bits de poids fort du registre de contrôle ne sont normalement pas assignés, donc écrire dedans est rarement une bonne idée.
    Faux, C4 active/désactive le gestionnaire d'interruption du port parallèle, C5 bascule le port DATA en entrée/sortie (sortie par défaut) mais uniquement sur port bidirectionnel, EPP ou ECP

    Normalement, pour émettre des données, tu dois écrire l'octet dans le registre DATA, puis activer le bit STROBE du registre CONTROL (bit de poids faible).
    Cette procedure est valable lorsque tu envoie des données à une imprimante. D'activer le strobe indique à l'imprimante qu'elle peut aller lire les données dur le port DATA. Ca fait partie du protocole de dialogue avec une imprimante.
    Sinon les données écrites dans le registre sont directement retranscrite sur le port sans besoin de valider par un strobe ou autre


    J'ai fait le montage suivant sur mon port parallèle
    A en croire ce schéma, il te faut écrire 1 pour allumer la led et 0 pour l'éteindre sur le registre DATA en &h378
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    Faux, C4 active/désactive le gestionnaire d'interruption du port parallèle, C5 bascule le port DATA en entrée/sortie (sortie par défaut) mais uniquement sur port bidirectionnel, EPP ou ECP
    Heu... C4, ce n'est pas un des trois bits de poids fort, tu sais... Cela ne concerne que C5, C6 et C7.
    Je n'ai pas parlé des spécificités EPP/ECP, car "on ne sait jamais", autant prendre en compte uniquement le port parallèle "basique" pour ce genre d'applications... Du moins tant que l'on n'est pas à court de lignes.

    Citation Envoyé par sevyc64 Voir le message
    Sinon les données écrites dans le registre sont directement retranscrite sur le port sans besoin de valider par un strobe ou autre
    Effectivement, j'ai lu trop vite, c'est réservé à la communication avec une imprimante. Les signaux sont émis/lus directement depuis les pins jusqu'au registre.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  5. #5
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    Merci d'avoir pris le temps de me répondre !

    J'ai passé la nuit avec cette diode mais j'ai compris l'origine du problème il fallait d'abord mettre le bit 5 du port 0x37A à 0 avant d'écrire sur le port 0x378!! aucun des nombreux liens que j'ai visité ne mentionnais cela

    En reprenant mes recherches pour une confirmation j'ai trouvé ceci :
    http://petit.developpez.com/parallele/cours_tdlportio/

    Merci.
    To start press any key. (reading screen) Where's the "any" key? I see Esc, Catarl, and Pig Up. There doesn't seem to be any "any" key. Wo! All this computer hacking is making me thirsty. I think I'll order a Tab. (presses TAB key). -- HOMER --

  6. #6
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par ssmario2 Voir le message
    J'ai passé la nuit avec cette diode mais j'ai compris l'origine du problème il fallait d'abord mettre le bit 5 du port 0x37A à 0 avant d'écrire sur le port 0x378!! aucun des nombreux liens que j'ai visité ne mentionnais cela
    Oui, par défaut, les bits "non assignés" d'un registre "write-only" doivent être mis à zéro, pour assurer notamment la compatibilité avec les évolutions ultérieures. Pour les registres en lecture seule, les bits en question doivent être masqués car ils peuvent parfois être "flottants" et changer de valeur aléatoirement.

    Or, tu utilises justement le port parallèle en sortie uniquement, dans ton montage, donc comme un port parallèle "basique" (non EPP, non ECP). Donc, bits C5, C6 et C7 à zéro pour le registre CONTROL.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  7. #7
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    C'est plus clair maintenant, merci beaucoup !
    To start press any key. (reading screen) Where's the "any" key? I see Esc, Catarl, and Pig Up. There doesn't seem to be any "any" key. Wo! All this computer hacking is making me thirsty. I think I'll order a Tab. (presses TAB key). -- HOMER --

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Commande de led avec le port serie
    Par valdano dans le forum MATLAB
    Réponses: 0
    Dernier message: 24/04/2013, 18h23
  2. Réponses: 9
    Dernier message: 14/08/2008, 15h30
  3. Allumer une LED branchée au port série
    Par soeursourire dans le forum Composants
    Réponses: 25
    Dernier message: 31/07/2007, 09h22
  4. [TP] Commande d'une machine via un port parallèle
    Par alaedin dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 03/06/2007, 21h45
  5. Commander une carte d'aquistion 'port isa'
    Par samia_6 dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/09/2006, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo