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

diviser par 20 avec un pic 16f87a



  1. #1
    ffets

    Bonsoir,

    Je réalise un projet avec un ami dans lequel nous avons besoin de diviser une variable par 20. Nous programmons notre pic 16f87 en assembleur.
    Mais nous ne savons pas comment nous y prendre pour diviser par 20.

    Quelqu'un pourrait nous aider svp ???

    Merci d'avance.

    Bonne soirée

    F.

    -----

  2. Publicité
  3. 📣 Nouveau projet éditorial de Futura
    🔥🧠 Le Mag Futura est lancé, découvrez notre 1er magazine papier

    Une belle revue de plus de 200 pages et 4 dossiers scientifiques pour tout comprendre à la science qui fera le futur. Nous avons besoin de vous 🙏 pour nous aider à le lancer...

    👉 Je découvre le projet

    Quatre questions à explorer en 2022 :
    → Quels mystères nous cache encore la Lune 🌙 ?
    → Pourra-t-on bientôt tout guérir grâce aux gènes 👩‍⚕️?
    → Comment nourrir le monde sans le détruire 🌍 ?
    → L’intelligence artificielle peut-elle devenir vraiment intelligente 🤖 ?
  4. #2
    Jack
    Modérateur
    salut,

    je suppose donc que le 16F87 ne possède pas d'instruction de division.

    Dans ce cas, le plus facile c'est de faire des soustractions successives de 20 jusqu'au moment où ton reste est inférieur à 20. Il suffit de compter combien de fois tu as soustrait 20 pour avoir le résultat de ta division entière.

    A+

  5. #3
    gedonet1

    Bonjour
    Pour faire une division par 20 en assembleur, c'est asses simple il suffit de faire 10 divisions par 2 et une division par deux en binaire se resume à un rrf (un decalage à droite) bien sur il faut gerer le carry issue du decalage selon que l'on veuille le garder pour la precision ou l'effacer .Autrement il existe des routines pour les divisions voir les apnotes chez microchip.
    pour exemple diviser le registre nombre par 10 avec une erreur maxi de 2.5 revient à ecrire cela:

    bcf STATUS,C
    rrf nombre
    bcf STATUS,C
    rrf nombre
    bcf STATUS,C
    rrf nombre
    bcf STATUS,C
    rrf nombre
    bcf STATUS,C
    rrf nombre

  6. #4
    Coincoin

    Salut,
    Pour faire une division par 20 en assembleur, c'est asses simple il suffit de faire 10 divisions par 2
    Dans ce cas, tu ne pas faire une division par 2*10=20 mais par 2^10=1024... Non?

  7. A voir en vidéo sur Futura
  8. #5
    monnoliv

    Pour faire une division par 20 en assembleur, c'est asses simple il suffit de faire 10 divisions par 2
    Non, comme dit Coincoin, de la sorte tu divises par 2^10.
    Ce qu'écrit Jack me semble plus juste (en + tu auras droit au reste de la division).
    Sinon, fais une recherche sur Google, j'ai déjà vu ce genre de routine quelque part...
    Bàt,
    Ne soldez pas grand mère, elle brosse encore.

  9. #6
    ffets

    Bonjour

    Merci pour vos réponses.
    Je vais essayer les solutions différentes.

    Merci

    ++

  10. Publicité
  11. #7
    gedonet1

    Bonjour
    effectivement comme dit Coincoin ce que je proposait ne fonctionne pas voila ce qui arrive quand on propose un truc rapidement sans le verifier.
    Toutes mes excuses.
    Pour me faire pardonner une adresse pour une routine math.asm en français : http://micropic.free.fr/math.asm

Discussions similaires

  1. Diviser par le module d'une fonction de transfert dans Scilab ?
    Par tonyos dans le forum TPE / TIPE et autres travaux
    Réponses: 1
    Dernier message: 28/05/2007, 08h37
  2. Réponses: 0
    Dernier message: 18/03/2007, 16h43
  3. [TERMINE] Régulation de chauffage par PIC par fil pilote
    Par azertylr dans le forum Projets électroniques
    Réponses: 296
    Dernier message: 30/08/2006, 19h01
  4. "Fonction définie" et interdiction de diviser par 0
    Par Vladzol dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 01/09/2005, 16h21
  5. Diviser un polynôme par sa dérivée
    Par Antikhippe dans le forum Mathématiques du supérieur
    Réponses: 19
    Dernier message: 10/01/2004, 16h38
Découvrez nos comparatifs produits sur l'informatique et les technologies.