Instruction IF sur PIC 16F
Répondre à la discussion
Affichage des résultats 1 à 27 sur 27

Instruction IF sur PIC 16F



  1. #1
    Adrian1903

    Exclamation Instruction IF sur PIC 16F


    ------

    Vous reconnaitrez qu'il s'agit d'un sujet bete, mais je n'arrive pas à utiliser l'instruction if
    structure:
    if <quelque chose>
    action
    endif
    quand je fai build all, il me sort missing argument au niveau du if!
    Where is the problem?
    thank you very much

    -----

  2. #2
    invite03481543

    Re : Instruction IF sur PIC 16F

    Salut,

    le plus important est de nous dire ce que tu as écrit dans le "quelque chose" et "l'action" car il y a des variables à déclarer et surement un retour de valeur vers une autre fonction.
    Donc il faut que tu nous donnes le reste de ton prog pour que nous puissions t'aider.

  3. #3
    Adrian1903

    Re : Instruction IF sur PIC 16F

    en gros ca donne ca pour les if, mais jai un autre probleme avant, je narrive pas a scanner mon clavier, jai deja ouvert un topic sur ca mais... voila koi, j'ai beau m'acharné dessus...
    Fichiers attachés Fichiers attachés

  4. #4
    nams2590

    Red face Re : Instruction IF sur PIC 16F

    Si tu veux mon avis, tu mélange le C et l'assembleur.
    If n'existe pas en assembleur. Tu devrais plutot essayer de remplacer les if par des instructions assembleurs. A mon avis il faut que tu utilise BTFSS(=Tester un ou plusieurs bits à 1) et BTFSC(=Tester un ou plusieurs bits à 0).

    nams2590 : http://fabien.parriaux.club.fr

  5. A voir en vidéo sur Futura
  6. #5
    nams2590

    Re : Instruction IF sur PIC 16F

    De plus, tu as déclaré PASS1, PASS2, PASS3, PASS4 et JOKER aux mêmes adresses. BNZ n'existe pas non plus dans l'assembleur pour le PIC. Je te conseillerais de telecharger le datasheet du 16F870, que tu peux trouver sur :
    http://ww1.microchip.com/downloads/e...Doc/30569b.pdf

    Et regarde dans la rubrique : 12.0 : Instruction Set Summary. Toutes les instructions que tu peux utiliser y sont détaillé dans un tableau.

    A ta place, je reprendrais tous, car il y a des sauts vers des sous programmes qui ne pourrons jamais s'effectuer....

    nams2590 : http://fabien.parriaux.club.fr

  7. #6
    Adrian1903

    Re : Instruction IF sur PIC 16F

    l'instruction eciste bel et bien, le logiciel la reconnai et elle est marqué dans mon livre dinstruction avec endif
    Comment tu fai pour tester plusieur bits avec btfsc et btfss? un je sais faire mai plusieur...

  8. #7
    Adrian1903

    Re : Instruction IF sur PIC 16F

    Bnz il existe je l'ai utilisé pour un autre programme il marche tre bien
    sinon pour pass1 pass2 les autres et joker je pensais leur affecté la valeur 0

  9. #8
    Adrian1903

    Re : Instruction IF sur PIC 16F

    il ne mette pas toute les instruction dans le datasheet

  10. #9
    DavidDB

    Re : Instruction IF sur PIC 16F

    Salut,

    Dans un programme Assembleur, l'instruction IF/THEN/ELSE n'existe pas...

    Ce sont des directives d'assemblage et cela n'à rien avoir avec les instructions...

    L’instruction BNZ fait partie du jeux d’instruction des 18F et dsPIC ; elle n’existe pas dans la famille des 16F.

    David.

  11. #10
    Adrian1903

    Re : Instruction IF sur PIC 16F

    comment ca se fai que ca ai bien voulu marcher alors....?

  12. #11
    DavidDB

    Re : Instruction IF sur PIC 16F

    Tiens, au passage, explique-nous ce que c'est pour une instruction "movfw"???

    Tu confonds aussi les adresses RAM et les équivalences...

    David.

  13. #12
    Adrian1903

    Re : Instruction IF sur PIC 16F

    b ce que ta dans f tu met dans w. comme de w vers f et de l vers w.
    explique moi alors ce que je confond...

  14. #13
    DavidDB

    Re : Instruction IF sur PIC 16F

    L'instruction MOVFW n'existe pas!!!!!

    David.

  15. #14
    Adrian1903

    Re : Instruction IF sur PIC 16F

    tant que ca marche... c'est pas mon probleme

  16. #15
    DavidDB

    Re : Instruction IF sur PIC 16F

    Salut,

    Ton programme ne se compile pas avec ton "MOVFW"...

    Remplace ce que tu inventes par l'instruction qui existe : MOVWF !!!

    De plus, je me répète, dans le pseudo-programme buggé que tu présentes dans ton post #3 tu confonds RAM et équivalence !!!

    Bon amusement.

    David.

  17. #16
    Adrian1903

    Re : Instruction IF sur PIC 16F

    Jinvente pas! Le prog se compile jusqu' l'instruction if...
    Avant il n'y a aucun soucis !!
    Jte le promet

  18. #17
    DavidDB

    Re : Instruction IF sur PIC 16F

    Je n'ai pas dit que tu inventes...

    Je dis que tu interprètes à ta manière, c'est très différent!

    Je le répète, ton programme ne se compile PAS.

    Tu dois avoir un message du genre Build Fail ou similaire.

    Vu comment tu restes buté, j'arrête là, car cela me fatigue...

    David.

  19. #18
    Adrian1903

    Re : Instruction IF sur PIC 16F

    j'ai build succeded ! ^^

  20. #19
    DavidDB

    Re : Instruction IF sur PIC 16F

    Salut,

    Arrête de raconter n'importe quoi!!!

    En annexe la copie de la page de l'assembleur après tentative d'assemblage de ton pseudo-programme du post #3...

    David.
    Fichiers attachés Fichiers attachés

  21. #20
    DavidDB

    Re : Instruction IF sur PIC 16F

    Je rectifie,

    MOVFW est une ancienne instruction qui n'est plus utilisée mais reste compatible avec l'assembleur des pic...

    L'instruction correct suivant ton post #12 est dans ton cas MOVF.

    David.

  22. #21
    Adrian1903

    Re : Instruction IF sur PIC 16F

    tu me disais, que la boucle bnz nexistait pas... skipnz existe t elle pour toi?

  23. #22
    DavidDB

    Re : Instruction IF sur PIC 16F

    Ouvre le manuel de référence sur les 16F!
    Le lien :
    http://www.microchip.com/stellent/id...GE&nodeId=1956

    BNZ et SKIPNZ ne font pas partie du jeu d'instruction des 16F...

    SKIPNZ(Assembleur ATMEL???) ne fait pas partie des instructions possibles pour toutes les familles des Pic.

    Dans l'assembleur 16F, l'instruction BNZ est remplacée lors de l'assemblage par l'instruction BTFSS STATUS,Z; MAIS, ce remplacement ne fait pas ce que tu voulais au départ.

    De plus, BNZ n'est pas une "boucle" mais bien un saut conditionnel (allez à si résultat différent de zéro)

    David.

  24. #23
    Adrian1903

    Re : Instruction IF sur PIC 16F

    sur mon bouquin c'est marqué dans le mm tableau que je peux les utiliser,
    j'ai deja utilser skpnz, ca marche nikel, je verrai pas pk bnz ne marcherai pas, sur le datasheet il doit y avoir que les instruction de base

  25. #24
    Adrian1903

    Re : Instruction IF sur PIC 16F

    je veux que bnz saute euh... branche pardon, si le resultat davant ne fai pas 0, sil ne le fai pas, que puis je öettre?
    escuse moi pour les touche, chui sur un clavier finlandais je suis pas encore abitué

  26. #25
    DavidDB

    Re : Instruction IF sur PIC 16F

    Voici ce que donne le BNZ une fois assemblé :

    02 1D03 BTFSS 0x3, 0x2 18: bnz PASS

    Où vois-tu dans cette ligne que l'on se branche sur PASS si Z vaut 0???
    Le bnz est remplacé par un test du bit Z dans le registre STATUS.

    Les instructions que tu peux utiliser, se trouvent dans le datasheet et pas ailleurs!!!

    Si comme tu le prétends, les instructions BNZ et SKPNZ(qui n'existe pas dans l'Assembleur PIC) fonctionnent chez toi, c'est que tu utilises un COMPILATEUR avec un Assembleur différent de celui de Microchip; mais en aucun cas tu n'utilises l'Assembleur de chez Microchip...

    David.

  27. #26
    invitef0503bf7

    Re : Instruction IF sur PIC 16F

    Pourquoi donc c'est cochonerie du µC ne parle elle pas le français comme tout le monde au lieu d'avoir chacun leur propre assembleur. Cela simplirais considérablement la programation, non?

  28. #27
    Adrian1903

    Re : Instruction IF sur PIC 16F

    j'ecris mes programmes avec MPLAB v7.20, c'est tout ce que je sais

Discussions similaires

  1. programmation pic 16f 628+ acquisition max187
    Par pekeu dans le forum Électronique
    Réponses: 2
    Dernier message: 31/05/2007, 13h46
  2. pic 16F detection passage zero du secteur
    Par alainav1 dans le forum Électronique
    Réponses: 8
    Dernier message: 02/01/2007, 18h33
  3. USB sur PIC 16F
    Par inviteb679aa6a dans le forum Électronique
    Réponses: 1
    Dernier message: 20/09/2006, 19h08
  4. pCF 8583 ET PIC 16f 876
    Par jherve dans le forum Électronique
    Réponses: 5
    Dernier message: 15/09/2006, 08h50
Découvrez nos comparatifs produits sur l'informatique et les technologies.