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

Assembleur Discussion :

Interruptions matérielles port parallele


Sujet :

Assembleur

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Interruptions matérielles port parallele
    Salut à tous
    Je suis très débutant en matière d'assembleur. il m'est déjà arrivé de faire certains petits programmes en assembleur mais cette fois je suis en face d'un problème qui est le suivant:
    Nous voulons brancher un encodeur à au port parallèle pour pouvoir contrôler la position d'un chariot commandé par un moteur. comme tout le monde sait les encodeurs envoient des impulsions à très grande fréquence il est donc nécessaire d'utiliser les interruptions matérielles pour pouvoir compter convenablement ces impulsions mon problème est que je n'ai aucune idée de leur utilisation
    Merci de m'aider

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Bonjour et bienvenue.

    Merci de prendre connaissance des règles du club en général et de celles du forum assembleur en particulier, parce que là, il nous manque trop d'informations.

    Si, toutefois, tu travailles sur PC et que tu utilises des moteurs pas à pas sur ton chariot, sache que ton PC travaille autrement plus vite que tes moteurs même si ceux-ci, à pleine vitesse, ont une cadence qui a échappé depuis longtemps à l'œil humain.

    Il n'est pas forcément NÉCESSAIRE de descendre à si bas niveau. Si, toutefois, tu souhaites le faire quand même, ça va être très dépendant de ton matériel. Donc, dis-nous tout.

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour votre réponse.
    Il est vrai que les PC actuels peuvent bien travailler à des fréquences très élevées. L'encodeur en question envoie 256 impulsion par tour; selon la vitesse du moteur(moteur asynchrone avec réducteur) l'encodeur est monté sur l'arbre du moteur qui lui tourne à 1500 RPM ce qui donne un nombre d'impulsions par minute de 256*1500=384000 Impulsion par minute ou 6400 par seconde. Je pense que occuper le système à lire une entrée spécifique chaque 0.00001 seconde serait trop. d'autant plus que ce moteur est ne fonctionne pas tout le temps par fois il tourne à gauche parfois à droite. L'utilisation des interruptions est la procédure qu'on suit quand on a affaire à des compteurs rapides sur des automates; j'ai pensé que c'est la même chose avec un PC

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Le mieux est d'utiliser l'entrée ACK du port parallèle pour cela, tout en reliant le signal à une broche de donnée pour pouvoir la lire.

    Il faut aussi activer les interruptions via le port de contrôle. Évidemment, tout cela est très facile si tu travailles sous D.O.S. Si tu utilises un autre système d'exploitation (à commencer par Windows), il faudra composer avec, soit en utilisant l'API dédiée, soit en écrivant un pilote dédié. Et ça, ça ne se fait pas en cinq minutes, malheureusement…

  5. #5
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    6400 par seconde ? 6400Hz quoi ...

    Ouarf ! c'est de la rigolade !

    Sur un 486 à 50MHz on dépasse déjà les 100000Hz

    par contre, même sur un Quad ça n'ira pas beaucoup plus vite car l'électronique
    du port parallèle n'a pas beaucoup progressé (car remplacé par l'USB pour les périphériques)

    a+ François

  6. #6
    Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut;
    Merci pour les réponses.
    Utiliser l'entrée ACK du port parallèle c'est compris. mais le reste l'est moins.Je travaille sous Windows millénium, puisque le code assembleur ne fonctionne pas sous XP. Comment faire pour déclencher cette interruption quand un signal vient de l'encodeur

  7. #7
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    suffit de bazarder windows.
    le probleme est clair, tu veux piloter un moteur du type industriel, donc, en environement industriel.

    et donc, windows n'a aucune utilité dans ce type d'environement, à moins qu'en plus de controler une machine, tu veilles aller sur facebook, ecrire un roman, jouer à WOW et ecouter de la musique ...

    utilise le DOS, ou crée une application bootable.

    pour ce qui est de la prise en compte des impulsions, si il y en a plusieurs, utilise un OU logique, c'est à dire une diode par entrée, tous reliés vers l'entrée ACK.

    ou sinon, utilise un microcontroleur, ça coute 1€ et pourra ensuite etre interfacé avec le PC sur un port usb.

Discussions similaires

  1. Utiliser le port parallele pour simuler un digicode
    Par nonoRedDevils dans le forum Assembleur
    Réponses: 8
    Dernier message: 30/12/2003, 13h23
  2. Interruptions clavier - Ports 60h et 61h
    Par Paradam dans le forum x86 16-bits
    Réponses: 32
    Dernier message: 10/07/2003, 11h09
  3. interruption materiel port parrallele
    Par pyrostan dans le forum C
    Réponses: 2
    Dernier message: 13/01/2003, 08h22
  4. Bouquins d'Assembleur - interruptions matérielles
    Par Stef784ever dans le forum x86 16-bits
    Réponses: 4
    Dernier message: 12/11/2002, 21h23
  5. Port parallele
    Par Phoneus dans le forum C
    Réponses: 2
    Dernier message: 05/05/2002, 23h19

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