débutant PIC 16F628 en langage C
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

débutant PIC 16F628 en langage C



  1. #1
    invitee0b95ad8

    Lightbulb débutant PIC 16F628 en langage C


    ------

    Bonjour,
    J'essaie de faire un petit programme en langage C, sur un PIC 16F628.

    J'ai des soucis de type "watchdog" apparemment.
    Je compile avec MPLAB IDE V8.46

    En mode debuggeur, j'ai le message suivant :
    CORE-W0003: Watchdog Timer event occurred. Break in execution requested
    Et quand je porte le programme .hex sur la puce, j'ai un reset régulier.

    Le code C est le suivant :
    #include <pic16f62xa.h>





    #define duree 0x0F

    __config=( UNPROTECT & LVPDIS & BORDIS & MCLREN & PWRTEN & WDTDIS & RCIO);


    int nombre;

    void tempo(void);

    void main(void)
    {

    PORTA=0x00;
    PORTB=0x00;

    CMCON=0b00000111;

    EEADR=0b00000000;

    OPTION=0b00001000; //bizarre !!!

    TRISA=0b11100000;
    TRISB=0b00000100;

    VRCON=0x00;//à enlever ?

    FSR=0x0C; //à enlever ?


    RB1=1;
    tempo();
    RB4=1; //plantage ?????
    tempo();
    RB0=1;
    tempo();
    RA3=1;
    tempo();
    RA1=1;
    tempo();
    RA0=1;
    tempo();

    RB0=0;
    RB1=0;
    RB4=0;


    while(1){
    PORTA++;
    PORTB++;
    tempo();
    }
    }



    void tempo(void)
    {
    nombre=duree;
    do
    {
    }
    while(nombre--);
    }
    J'ai pourtant mis
    __config=( UNPROTECT & LVPDIS & BORDIS & MCLREN & PWRTEN & WDTDIS & RCIO);

    Qui aurait une solution (je débute en programmation en C).

    Merci d'avance

    -----

  2. #2
    simon.

    Re : débutant PIC 16F628 en langage C

    Tu compiles avec quoi ? MPLAB n'est pas un compilateur.

    Si c'est le picc d'ex-hitech, la syntaxe pour la config est du genre:

    __CONFIG(INTIO&WDTDIS&LVPDIS&C CPRB3);

  3. #3
    Seb.26

    Re : débutant PIC 16F628 en langage C

    tu as cochée la case "configuration bits set in code" ?
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  4. #4
    invitee0b95ad8

    Re : débutant PIC 16F628 en langage C

    Alors, au niveau du debugger, j'ai choisi l'option MAPLAB SIM

    Au niveau du bouton sur lequel je clique pour compiler apparait :
    Built with compiler for PIC10/12/16 MCUs (Lite Mode) V9.70

    Mais je pense que le soucis est déjà visible dans le mode debugger, sans même faire de compilation ni de portage.

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

    Re : débutant PIC 16F628 en langage C

    Citation Envoyé par Seb.26 Voir le message
    tu as cochée la case "configuration bits set in code" ?
    A quel endroit du logiciel ?

  7. #6
    invitee0b95ad8

    Re : débutant PIC 16F628 en langage C

    Oui, j'ai trouvé, c'était bien coché
    Images attachées Images attachées  

  8. #7
    invitee0b95ad8

    Re : débutant PIC 16F628 en langage C

    ouala, c'est intéressant, ce tableau n'ai pas celui que j'étais censé avoir codé.

  9. #8
    Seb.26

    Re : débutant PIC 16F628 en langage C

    Pour tests, ajoute un reset du Watchdog dans ta boucle, pour vérifier que c'est bien lui la cause de tes RESET ...
    ( ou encore teste les bits d'info du RESET au boot )

    Si c'est bien le WD qui fait risette , ce sont tes bits de config qui ne sont pas bons ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  10. #9
    vinowan

    Re : débutant PIC 16F628 en langage C

    tu peux régler les bits de configuration du pic de 2 façons:
    - soit comme tu essaie de le faire via un instruction en début de code.
    - soit en utilisant l'onglet Configure -> Configuration bit.

    pour ton probleme ici :
    - soit tu désactive le watch dog dans les bits de configuration.
    - soit tu clear le watch dog dans ton programme assez fréquemment afin d'eviter le reset de la cpu.

  11. #10
    invitee0b95ad8

    Re : débutant PIC 16F628 en langage C

    Cool, ça marche (même sur puce) quand je gère de tableau en "manuel".

    Mais sinon, pour ma culture personnelle, pourquoi ma ligne de commande du __config n'est-elle pas prise en compte ?

  12. #11
    RISC

    Re : débutant PIC 16F628 en langage C

    Salut,

    Je te déconseille de sélectionner les bits de configuration dans l'environnement MPLAB.
    Ta première solution (le faire dans le programme) est la bonne. Trouve des exemples qui montrent la bonne syntaxe.

    Tu trouveras des tutoriels sur les PIC16 ici : http://www.aix2pic.net/
    et aussi ici : http://www.aix-mrs.iufm.fr/formation...indexPIC_C.htm

    Charges toi la dernière version de MPLAB (v8.63) ici.
    Pour les compilateurs, c'est ici.

    a+

  13. #12
    Seb.26

    Re : débutant PIC 16F628 en langage C

    Citation Envoyé par suzuka Voir le message
    Mais sinon, pour ma culture personnelle, pourquoi ma ligne de commande du __config n'est-elle pas prise en compte ?
    Cherche la valeur des flags, et tu comprendras vite je pense ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

Discussions similaires

  1. PIC 16f628
    Par invitee1bdeaaa dans le forum Électronique
    Réponses: 9
    Dernier message: 31/08/2009, 16h53
  2. pic 16f628
    Par invite72e4aa92 dans le forum Électronique
    Réponses: 1
    Dernier message: 23/01/2009, 16h54
  3. pic 16F628
    Par LTHOMAS dans le forum Électronique
    Réponses: 7
    Dernier message: 29/03/2006, 22h13
  4. pic 16F628
    Par invitea78e17c9 dans le forum Électronique
    Réponses: 1
    Dernier message: 15/03/2004, 22h04
  5. pic 16f628
    Par invite7a98af17 dans le forum Électronique
    Réponses: 3
    Dernier message: 16/02/2004, 16h21
Découvrez nos comparatifs produits sur l'informatique et les technologies.