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

Autres architectures Assembleur Discussion :

[18F818] Comparer deux entrées


Sujet :

Autres architectures Assembleur

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 43
    Points : 28
    Points
    28
    Par défaut [18F818] Comparer deux entrées
    Bonjour. Deja desole pour le manque d'accent mais je n'ai qu'un clavier qwerty...
    je suis nouveau en assembleur et je galere un peu... Habitue au C, l'assembleur m'est un peu complique...
    Na question est:
    j'ai un capteur sur deux bits (en gros porta[0], porta[1]) et un actionneur sur deux bits (porta[2], porta[3]).
    Il faut que je detecte quand porta[1:0]=porta[3:2]. Qq1 pourrait me dire comment faire?
    En c j'ai mon idee mais en assembleur...
    Merci

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    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 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Citation Envoyé par sfeltan Voir le message
    j'ai un capteur sur deux bits (en gros porta[0], porta[1]) et un actionneur sur deux bits (porta[2], porta[3]). Il faut que je detecte quand porta[1:0]=porta[3:2]. Qq1 pourrait me dire comment faire?

    Merci.
    Ça dépend beaucoup du contexte et de ton propre point de vue mais, en l'occurence, c'est comme en C : les bits d'entrées 0;1 et les bits de sortie 2;3 doivent probablement être tous regroupés sur un même port.

    Il faut donc que tu lises le port pour récupérer son état dans un registre, et que tu fasses des opérations bit-à-bit dessus. J'ai fait un peu de PIC mais je ne connais pas le 18F818 en particulier. Si tu as deux registres disponibles, fais glisser par rotation les deux premiers bits du premier registre vers le second, poursuis les décalages jusqu'à ce que les deux paires de bits occupent les mêmes positions dans chacun des registres, et termine par un comparaison.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 43
    Points : 28
    Points
    28
    Par défaut
    je comprend l'opération.
    Quand tu parle de comparaison des deux registres stockants les valeurs, fais tu allusion à l'instruction "comp"? Car si c'est le cas, j'ai l'impression que ce pic ne possède pas cette instruction car j'y avais déja pensé...
    Je ne connais l'assembleur que depuis peu et on nous impose le choix du PIC.
    Tout le reste du programme est ok mais là je bloque...

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    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 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Dans ce cas, tu peux par exemple faire un OU exclusif (XOR) entre les deux et tester si le résultat est nul.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 43
    Points : 28
    Points
    28
    Par défaut
    oui j'y avais pas pensé... Merci

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

Discussions similaires

  1. Filtrer une table en comparant deux champs entre eux
    Par damene dans le forum Débuter
    Réponses: 13
    Dernier message: 12/04/2008, 20h10
  2. comment comparer deux dates?
    Par billoum dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/08/2004, 22h08
  3. [STRUTS] Tag Equal, comparer deux variables
    Par logica dans le forum Struts 1
    Réponses: 2
    Dernier message: 04/06/2004, 13h01
  4. comparer deux string
    Par jul54 dans le forum MFC
    Réponses: 3
    Dernier message: 22/04/2004, 16h50
  5. [date] Comparer deux formats différents
    Par terziann dans le forum Requêtes
    Réponses: 17
    Dernier message: 21/07/2003, 16h21

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