Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Aide sur les variables d'un PIC



  1. #1
    Acidmaster

    Aide sur les variables d'un PIC


    ------

    bonjour, je débute en programmation PIC, et je voulais savoir si il existait une facon simple d'additionner ou de soustraire deux nombres de plus d'un octet, par exemple :
    variables :
    Nombre1 : 2 ; sur 2 octets, = 01000000 00000100
    Nombre2 : 2 = 00001000 00010000

    movlw Nombre2
    sublw Nombre1 ; nombre1 - nombre2

    ce qui devrai donner 00110111 11110100, le problème étant que les registres font 8bits, ce qui me donne en réalité uniquement les 8 derniers bits

    tout ca pour tester si les deux nombres sont égaux(si le zéro flag est à 1)

    merci de votre réponse.

    -----

  2. Publicité
  3. #2
    verdifre

    Re : Aide sur les variables d'un PIC

    bonjour,
    Pour faire un test d'egalité, un xor me semble plus approprié, tu testes d'abord les deux octets de poid fort, si ils sont egaux (resultat du xor =0) tu testes les deux octets de poid faible
    c'est plus rapide qu'une soustraction
    fred

  4. #3
    Acidmaster

    Re : Aide sur les variables d'un PIC

    oui, surement, mais donc d'après ta méthode, une comparaison octet par octet et tout de même nécessaire, on ne peut pas tout faire en une seule fois. merci de poster un message si une solution existe (c'est juste que je doit tester si deux variables de 8 octets sont égales donc c'est long, mais bon avec une boucle, ca passe très bien)

  5. #4
    lolomatic

    Re : Aide sur les variables d'un PIC

    Bonjour

    En effet, tu ne peux pas faire d'opérations en 16 bits en une seule fois sur un PIC, aucune instruction ne te permets de le faire !

    En fait, j'aimerais juste revenir sur ton code pour t'apporter quelques éclaircissements:

    Lorsque tu écris "movlw Nombre2", tu utilises de l'adressage littéral : tu ne copies absolument pas la valeur de ta variable Nombre2 (son contenu) dans W, mais son adresse, or ça m'étonnerais que ce soit ce que tu voulais faire ?!

    Pour copier le contenu de Nombre2 dans W, le code approprié est :
    "movf Nombre2, W"

    De même, écrire "Nombre1 : 2" ne signifie pas exactement que ta variable fait 2 octets (dans quel cas, l'apeller reviendrait à manipuler ses 2 octets!), mais que tu as réservé 2 octets lors de sa déclaration ! Et que la variable suivante se trouvera 2 octets plus loin !

    En fait, il faut garder à l'esprit comment fonctionne MPLAB au minimum pour bien comprendre ce qui se passe.

    C'est pas forcément évident lorsqu'on débute, surtout que je suis loin d'être un fin pédagogue !
    Un excellent cours sur les PICs (admis par tous comme étant LA référence) est le cours de Bigonoff, qui se trouve à cette adresse :
    http://www.abcelectronique.com/bigonoff/

    Voilà, bonne chance
    @+

  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    umfred

    Re : Aide sur les variables d'un PIC

    Tu trouvera ici des routines mathématiques.
    Elles ne sont peut être pas écrites pour ton PIC, mais une adaption est doit être possible.

    (toujours regarder à la source si il ne propose pas de solutions )

Discussions similaires

  1. 2,5 V sur l'input d'un PIC ???
    Par Voltron dans le forum Électronique
    Réponses: 23
    Dernier message: 08/09/2007, 19h05
  2. erreur 0X00 programmation PIC plus questions sur les PIC
    Par ROTT dans le forum Électronique
    Réponses: 4
    Dernier message: 22/07/2007, 14h36
  3. Réponses: 24
    Dernier message: 11/05/2006, 14h07
  4. Question sur les étoiles variables
    Par Cro Mignon dans le forum Archives
    Réponses: 3
    Dernier message: 16/01/2006, 09h54
  5. aide sur un pic 93C56 a 14 broches.
    Par carbo dans le forum Électronique
    Réponses: 7
    Dernier message: 01/12/2003, 19h02
Découvrez nos comparatifs produits sur l'informatique et les technologies.