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

Débuts en PIC



  1. #1
    geraldvi

    Question Débuts en PIC


    ------

    bonjour,

    Je debute dans la programmation des PIC et, pour le moment, je teste. J'ai lu dernierement dans les cours de Bigonoff ces lignes :
    OPTIONVAL EQUB'00000111'
    ; PSA b3 : 0= Assignation prédiviseur sur Tmr0
    ; PS2/PS0 b2/b0 valeur du prédiviseur
    ; 111 = 1/128 1/256

    ceci semble indiquer que la variable OPTIONVAL est egale à 07 en héxadécimal.

    lorsque j'entre ce code (ainsi que le reste du programme) dans mplab, je m'appercoit qu'il prend en compte OPTIONVAL comme etant une variable à l'adresse 07, et de valeur aleatoire ce qui contredit le code precedent qui donne 07 comme la valeur de OPTIONVAL !...

    Je pense que j'ai loupé une explication quelque part !...
    Quelqu'un pourrait-il m'eclairé ?

    Merci

    -----

  2. Publicité
  3. #2
    Patrick

    Re : Débuts en PIC

    Salut

    non, non tu n'as rien raté !

    Code:
    optionval   equ  0x20 ; variable declarée en 0x20
    data        equ  0x21
    on declare une variable et ensuite on la remplie

    Code:
            movlw  0x07 
            movwf  optionval ; charge la valeur 0x07 dans optionval
    Voilà ! à plus tard et bonne continuation

    Patrick

  4. #3
    geraldvi

    Re : Débuts en PIC

    OK mais, à ton avis, que peut signifier ces lignes que j'ai remarqué sur certains listing ?

    OPTIONVAL EQUB'00000111'
    ; PSA b3 : 0= Assignation prédiviseur sur Tmr0
    ; PS2/PS0 b2/b0 valeur du prédiviseur
    ; 111 = 1/128 1/256


    et on trouve plus loin dans le programme :
    movlw OPTIONVAL ; charger masque
    movwf OPTION_REG ; initialiser registre option


    Il semblerait que l'on configure une variable (OPTIONVAL) que l'on charge ensuite dans le registre approprié (OPTION_REG ) !...

  5. #4
    Patrick

    Re : Débuts en PIC

    Salut geraldvi

    Je ne comprends pas non plus ces lignes mais pour assigner une valeur constante à OPTIONVAL il faut faire un "define"
    Code:
    #define  OPTIONVAL  0x07
    avec cette ligne OPTIONVAL est remplacé après compilation par le masque 0x07 ou 00000111 en binaire ! En d'autre terme OPTIONVAL vaut 0x07. Ensuite on peut faire charger OPTIONVAL dans OPTION_REG qui est un registre de configuration du PIC.

    Voir la doc constructeur du PIC pour le détail des, différents, bits

    Bon courage

    Patrick

  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
    Bigonoff

    Re : Débuts en PIC

    Salut
    ------

    Geraldvi, lorsque tu écris :

    #DEFINE OPTIONVAL 0x07

    tu utilises un simple traitement de texte.
    Chaque fois que MPASM va rencontrer le texte "OPTIONVAL", il va le remplacer par ce qui suit, c'est à dire "0x07"

    Donc, en écrivant

    movlw OPTIONVAL
    movwf OPTION_REG

    MPASM va remplacer par

    movlw 0x07
    movwf OPTION_REG

    Autrement dit, il va mettre la VALEUR 0x07 dans le registre OPTION_REG, ce qui est bien le but recherché.

    Lorsque tu écris

    OPTIONVAL EQU 0x07

    Tu signales à MPASM que chaque fois qu'il rencontre OPTIONVAL, il doit le remplacer par la valeur déclarée, donc 0x07

    Donc, si tu écris

    movlw OPTIONVAL
    movwf OPTION_REG

    MPASM va remplacer par

    movlw 0x07
    movwf OPTION_REG

    Donc, écrire dans le cas présent

    #DEFINE OPTION_REG 0x07
    ou
    OPTION_REG EQU 0x07
    ou
    OPTION_REG = 0x07

    revient strictement au même.

    Ton problème, c'est que tu confonds l'adressage direct avec l'adressage littéral, je te suggère de lire les modes d'adressage dans mon cours-part1 (dont proviennent du reste les déclarations dont il est question ici )

    OPTIONVAL n'est PAS une variable, c'est une CONSTANTE.

    A+
    Bigonoff
    Vive l'Internet libre

  9. #6
    geraldvi

    Wink Re : Débuts en PIC

    Bonjour,

    Tout d'abord, merci pour votre réponse, j'ai réussi à faire fonctionner mon code. Bien que j'ai du mal à comprendre le fonctionnement de equ dans cette ligne, ça marche.

    Je voulais aussi dire que je suis content de connaître le célèbre Bigonoff et j'en profite pour te féliciter pour ces cours très bien fait.
    J'espère que tes problèmes avec la poste son résolus !...

    A bientôt.

  10. Publicité
  11. #7
    Bigonoff

    Re : Débuts en PIC

    Salut
    -----

    Merci pour les compliments, mais de là à dire que je suis célèbre...
    Je vais avoir la tête qui enfle,

    Bien que j'ai du mal à comprendre le fonctionnement de equ dans cette ligne
    Le EQU veut simplement dire "égal".

    C'est simplement pour mettre tous les paramètres en en-tête de programme, afin d'éviter de chercher dans tout le programme où on utilise ce registre.


    Au lieu par exemple d'écrire

    main
    ...
    ...
    ... ; des tas d'instructions
    movlw B'00000111'
    movwf OPTION_REG

    On met en début de programme

    OPTIONVAL EQUB'00000111'

    et dans le programme, on utilise

    main
    ...
    ...
    ... ; des tas d'instructions
    movlw OPTIONVAL
    movwf OPTION_REG

    C'est tout simplement pour se facilier la vie et la maintenance.
    Ca ne sert à rien d'autre

    A+
    Bigonoff
    Vive l'Internet libre

  12. #8
    Lataupeben

    Angry Re : Débuts en PIC

    Moi aussi je debute en pic

    J'arrive a programmer le pic ( enfin je crois car je peux relire le programme et j'obtient bien le programme du debut )

    dc ca a l'air de bien marché

    Mais quand je met le pic sur le circuit rien ne se passe

    question : es ce qu'il est possible que le pic soir "grillé" mais que la memoire programme soir encore accesible

    Car la je commence a crisé grave
    Merci d'avance de vos reponse

  13. #9
    Aurelien62fr

    Re : Débuts en PIC

    Citation Envoyé par Lataupeben
    Moi aussi je debute en pic

    J'arrive a programmer le pic ( enfin je crois car je peux relire le programme et j'obtient bien le programme du debut )

    dc ca a l'air de bien marché

    Mais quand je met le pic sur le circuit rien ne se passe

    question : es ce qu'il est possible que le pic soir "grillé" mais que la memoire programme soir encore accesible

    Car la je commence a crisé grave
    Merci d'avance de vos reponse
    Tu dois surement charger le programme en memoire RAM, donc dès que tu le deconnecte d'une alimentation il oublit ton programme, charge le en memoire EEPROM

  14. #10
    Lataupeben

    Re : Débuts en PIC

    non non pas possible(enfin je croios pas)

    je programme avec ce programateur et ce logiciel:
    http://membres.lycos.fr/offset/pic/pic.html

    je programme mon pic

    je le deconecte je relance le prog (pour le reinitialiser)

    je remet le pic sous tension
    je lis le programme et je retombe bien sur mon programme d'origine
    donc le pic est bien programmé aparament

    Merci pour ta reponse meme si ca me parait impossible car je recupere le programme meme apres la mise hors tension

  15. #11
    Aurelien62fr

    Re : Débuts en PIC

    Citation Envoyé par Lataupeben
    non non pas possible(enfin je croios pas)

    je programme avec ce programateur et ce logiciel:
    http://membres.lycos.fr/offset/pic/pic.html

    je programme mon pic

    je le deconecte je relance le prog (pour le reinitialiser)

    je remet le pic sous tension
    je lis le programme et je retombe bien sur mon programme d'origine
    donc le pic est bien programmé aparament

    Merci pour ta reponse meme si ca me parait impossible car je recupere le programme meme apres la mise hors tension
    List p=16F84a
    __config H'3FF9'
    #include "P16F84a.INC"

    mais sa dans ton entete

    on sera fixé comme sa, moi au début sa faisait comme toi et apres avoir ajouté cette ligne sa roule

  16. #12
    Bigonoff

    Re : Débuts en PIC

    Salut
    -----

    En général, si le pic ne tourne pas, et en supposant qu'il n'y ait pas d'erreur dans le programme, c'est une des causes suivantes:

    - Problème d'alimentation ou de masse
    - Pas de +5V sur la pin MCLR
    - Problème avec l'oscillateur (quartz ou condensateur de mauvaise valeur)
    - Paramétrage de la directive _CONFIG incorrecte (oscillateur)
    - Problème de watchdog

    La première chose à faire, est de vérifier si l'oscillateur fonctionne, avec un oscilloscope.

    A+
    Bigonoff
    Vive l'Internet libre

  17. Publicité
  18. #13
    Lataupeben

    Re : Débuts en PIC

    bigonoff: c'est ton cablage tes valeur ton programme (led_cli)
    als ca elimine bcp de ces raisons
    je vien de changer le quartz dernierement car j'avais un doute

    je v essayer de changer le pic , le pc qui me sert a programmer , le logiciel (ic prog permet d'utiliser ce programateur) , refere le cablage du programateur ( il est sur platine d'essaie)

    et apres je v voir si ca marche pas c qu c grave

    je v finir par acheter un programateur (comme ca je n'aurais pas de doute)

    si quelqu'un en a un d'ocasion qu'il me fasse signe

    Merci

    Message de la modération:

    Merci de faire un petit effort lors de la rédaction de message les "c" et les "v" sont de préférence à éviter.
    Citation Envoyé par Règles
    11. Respectez les lecteurs du forum, n'écrivez pas vos messages en style SMS ou phonétique. Utilisez la fonction "prévisualisation" pour vous relire et limiter les fautes d'orthographe. Evitez les majuscules pour attirer l'attention des lecteurs.
    JP-Modérateur
    Dernière modification par JP ; 13/06/2004 à 16h57.

  19. #14
    Bigonoff

    Re : Débuts en PIC

    Salut
    ------

    bigonoff: c'est ton cablage tes valeur ton programme (led_cli)
    als ca elimine bcp de ces raisons
    Pas forcément.
    Certains quartz ne fonctionnent pas avec les valeurs préconisées, ça dépend de la marque.

    Essaye avec des condensateurs entre 4 et 15 pf sur le quartz, pour voir si ça ne démarre pas

    A+
    Bigonoff
    Vive l'Internet libre

  20. #15
    Lataupeben

    Re : Débuts en PIC

    Je pense que j'ai un probleme de regulateur (78l05 au lieu de 7805)
    donc je doit pas avoir toujours mon 5V
    Je vais essayer pour les condensateurs

    Merci

    P.S.:JP dsl mais c'est pas volontaire (il m'arrive de maittre des c ou des v dans mes devoirs)

    Vivement que le francais évolue!! LOL
    Dernière modification par Lataupeben ; 15/06/2004 à 09h02.

  21. #16
    JPL
    Responsable des forums

    Re : Débuts en PIC

    (il m'arrive de maittre des c ou des v dans mes devoirs)

    Vivement que le francais évolue!!
    Le français évolue depuis son apparition. Mais ce n'est pas une raison pour qu'il évolue n'importe comment : en particulier les habitudes SMS sont liées à la pauvreté technique de ce moyen de communication. On peut donc penser que c'est provisoire. Et puis on peut utiliser une série d'abréviations dans un certain contexte (SMS, prendre des notes en cours...) et considérer que c'est totalement hors de propos dans un autre contexte (en particulier dans tes devoirs !). Essaie d'écrire en écriture SMS un poème connu, et tu verras que c'est nettement moins poétique !
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

Discussions similaires

  1. Vos débuts en astronomie ??
    Par kneukneu dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 18
    Dernier message: 25/02/2007, 14h41
  2. Debuts en programmation.
    Par Electrofred dans le forum Logiciel - Software - Open Source
    Réponses: 14
    Dernier message: 28/09/2006, 21h49
  3. mes débuts
    Par phildoby dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 13
    Dernier message: 24/10/2005, 21h00
  4. Les débuts de l'univers
    Par Urcos dans le forum Archives
    Réponses: 1
    Dernier message: 17/06/2004, 14h46
Découvrez nos comparatifs produits sur l'informatique et les technologies.