PIC19F887 et C
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 52

PIC19F887 et C



  1. #1
    invite3f2bb8c8

    PIC19F887 et C


    ------

    Bonjour,

    Je désire programmer un PIC16F887 en langage C. Pour ce faire j'utilise MPLAB IDE v8.36 ainsi que CC5X. Mon µC est relié au PC via un Pickit2 sur port USB.
    La compilation du programme se passe bien :
    "BUILD SUCCEEDEED"
    Mais au moment de le passer dans le PIC, ça ne marche pas.
    Pour y parvenir, je suis le tutoriel d'électronique facile.
    Quelqu'un pourrait-il me renseigner? Je me ballade sur google depuis quelques temps sans succès...
    Merci par avance.

    -----

  2. #2
    Jack52

    Re : PIC19F887 et C

    Il te donne pas un message d'erreur par hasard ??
    Un égoïste, c'est quelqu'un qui ne pense pas à moi !

  3. #3
    invite3f2bb8c8

    Re : PIC19F887 et C

    Lors de la compilation? Il n'y a aucun message d'erreur. Et lorsque je simule, tout va bien également. Je suis complètement perdu...
    Je me suis renseigné, je sais que CC5X et MPLAB sont compatibles et je ne vois vraiment pas d'où peut venir le problème... Je n'arrive même pas à juste allmer une lampe...

  4. #4
    Jack52

    Re : PIC19F887 et C

    Euh ...

    As tu paramètré ton Pic dans le logiciel, il me semble que lorsque je faisait de la proga, il fallait dire au logiciel quel Pic j'utlilisait, c'était dans les onglets à cotè de Fichier, édition, ect ...

    La simulation, c'est le debugage ??
    Un égoïste, c'est quelqu'un qui ne pense pas à moi !

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

    Re : PIC19F887 et C

    Oui je l'ai fait également, et j'ai aussi configuré MPLAB pour pouvoir programmé en C. Tout ceci est indiqué dans le tutoriel et je l'ai suivi pas à pas.
    Faut-il redéclarer quelque chose au moment de la rédaction du code? Car si je le fais, il me dit que je l'ai déjà et me génère une erreur...

  7. #6
    invite3f2bb8c8

    Re : PIC19F887 et C

    Oui la simulation c'est le debuggage. Navré, j'emploie mes termes, j'ai essayé de faire attention pourtant ^^

  8. #7
    Jack52

    Re : PIC19F887 et C

    Pour passer en mode débugage, le logiciel envoie le programme dans le Pic, non ??

    Si le débugage fonctionne, ton programme est bon, tu peut pas le copier ici ?? Sauf si sa reléve de la plus haute sécurité gouvernemental ultra top secret que seul 007 posséde !! ^^
    Un égoïste, c'est quelqu'un qui ne pense pas à moi !

  9. #8
    loumi

    Re : PIC19F887 et C

    Salut !!
    Sur MPLab il y a un petit piège à con pardon pour l'expression, mais on s'est tous fait avoir au moins une fois.
    Vérifie, en haut dans le menu "Configure/Select Device" qu'il s'agisse du bon PIC, ensuite "Configure / Configuration Bits" et là il faut modifier les bits suivant ton application, par exemple si tu utilise un quartz ou un oscillateur il faut mettre "Oscillator HS"
    Les paramètres en général sont :
    Oscillator :HS
    Watchdog : Off
    Power Up timer : Off
    Brown out detector : Off
    Low voltage program : disabled
    et le reste tu laisses comme c'est.

    Je ne sais pas si ca va t'aider, mais c'est déjà utile de vérifier cela

  10. #9
    invite3f2bb8c8

    Re : PIC19F887 et C

    Il ne me semble pas qu'il envoie le programme dans le PIC lors du debuggage, ou alors j'ai pas tout compris ^^ Il me semblait que le debuggage était juste une sorte de simulation (d'où l'utilisation de ce terme lors de mon précédent post ^^)

    Voilà mon bout de code tel quel, et comme j'ai dit, c'est juste pour allumer une lampe sur le bit 0 du port D du PIC:

    //--------------------
    // Programme principal
    //--------------------

    void main(void)
    {
    PORTD=0;
    TRISD=0;

    for(;
    {
    PORTD.0=1;
    }
    }

    Pour moi si le debuggage est bon, le programme est bon, le seul souci qui pourrait se poser serait un souci de temps réel, enfin en ce qui concerne allumer une lampe... ^^ Voilà pourquoi je me suis tourné ves les logiciels ou le matériel, mais je ne parviens pas à déterminer la cause de mes ennuis.

  11. #10
    invite3f2bb8c8

    Re : PIC19F887 et C

    Ok je viens de modifier les bits de configuration comme tu le décris mais rien à faire, ça ne marche pas.
    En ce qui concerne la sélection du PIC, il est bel et bien sur PIC16F887, c'est celui que j'utilise.

  12. #11
    Jack52

    Re : PIC19F887 et C

    Citation Envoyé par loumi Voir le message
    Salut !!
    Sur MPLab il y a un petit piège à con pardon pour l'expression, mais on s'est tous fait avoir au moins une fois.
    Vérifie, en haut dans le menu "Configure/Select Device" qu'il s'agisse du bon PIC, ensuite "Configure / Configuration Bits" et là il faut modifier les bits suivant ton application, par exemple si tu utilise un quartz ou un oscillateur il faut mettre "Oscillator HS"
    Les paramètres en général sont :
    Oscillator :HS
    Watchdog : Off
    Power Up timer : Off
    Brown out detector : Off
    Low voltage program : disabled
    et le reste tu laisses comme c'est.

    Je ne sais pas si ca va t'aider, mais c'est déjà utile de vérifier cela
    Oui c'est vrai qu'il y a sa aussi, mais à force je commancais à les oublier !!

    Pour le débogage, ou débugage, ou encore débuggage, soit la recherche et la correction de bugs, les ingénieurs se servent d'un logiciel, le débogueur, ainsi qu'un logiciel de suivi de problèmes.

    Le logiciel de suivi de problèmes sert à coordonner les travaux de débogage, il est utilisé pour collecter tous les dysfonctionnements constatés, inscrire les causes et les actions de correction effectuées et ainsi suivre l'avancement des corrections. Les causes peuvent être des bugs, mais aussi des défauts dans les paramètres de configuration ou des erreurs de manipulation. Le logiciel de suivi de problèmes est utilisé aussi bien par les usagers du logiciel défaillant que par les ingénieurs ou les administrateurs systèmes.

    Le débogueur permet d'analyser l'état d'exécution d'un logiciel à un instant donné, les opérations en cours, les informations en mémoire, les fichiers ouverts, etc. Avec un débogueur en ligne, il est possible de suspendre l'exécution du logiciel à tout moment, d'analyser l'état, puis de continuer les traitements.
    Pour moi le programme doit être présent dans le Pic !!
    Un égoïste, c'est quelqu'un qui ne pense pas à moi !

  13. #12
    loumi

    Re : PIC19F887 et C

    ton programme est correct,
    ajoute simplement en haut de ton programme la ligne
    #include 16F887.h
    cette bibliothèque doit aussi se trouver dans le même dossier que ton code

  14. #13
    Jack52

    Re : PIC19F887 et C

    Citation Envoyé par Baagaa Voir le message
    //--------------------
    // Programme principal
    //--------------------

    void main(void)
    {
    PORTD=0;
    TRISD=0;

    for(;
    {
    PORTD.0=1;
    }
    }
    Si tout tes bit du pour D sont des sorties met TRISD=0x00
    Un égoïste, c'est quelqu'un qui ne pense pas à moi !

  15. #14
    invite3f2bb8c8

    Re : PIC19F887 et C

    A l'heure actuelle je voudrais juste allumer le bit 0 du PORTD mais je peux effectivement modifier cette donnée.

    En ce qui concerne l'en-tête, je peux effectivement rajouter cette ligne. Le fichier est dans le dossier avec le main.
    Mais lorsque je la rajoute telle quelle, #include 16F887, il me dit que la syntaxe n'est pas correcte.
    J'ai aussi vu une syntaxe avec pragma, est-ce identique?

  16. #15
    loumi

    Re : PIC19F887 et C

    remplace ton
    for( ; ) par

    while(1){

    ....

    }
    parfois les compilateurs.... on sait pas trop

  17. #16
    loumi

    Re : PIC19F887 et C

    Citation Envoyé par Baagaa Voir le message
    A l'heure actuelle je voudrais juste allumer le bit 0 du PORTD mais je peux effectivement modifier cette donnée.

    En ce qui concerne l'en-tête, je peux effectivement rajouter cette ligne. Le fichier est dans le dossier avec le main.
    Mais lorsque je la rajoute telle quelle, #include 16F887, il me dit que la syntaxe n'est pas correcte.
    J'ai aussi vu une syntaxe avec pragma, est-ce identique?

    si je ne me trompe pas, le pragma n'est pas la même chose, il sert à donner par exemple une directive d'écriture en mémoire,
    par exemple pour les interruptions tu écris :
    #pragma origin 4
    ce qui indique au compilateur d'écrire la routine des IT à l'adresse 0x04 de ta mémoire.

    peut être a t'il d'autres utilités, je ne les connais pas...

  18. #17
    invite3f2bb8c8

    Re : PIC19F887 et C

    Je ne parvienx toujours pas à mettre l'entête que tu m'as dit de mettre... Par contre le pragma est passé sans râler ^^ Enfin... le PIC n'allume toujours pas la lampe ^^

    J'ai aussi remplacé le for par le while mais sans succès...

  19. #18
    Jack52

    Re : PIC19F887 et C

    En mode débugage elle s'allume ?? Oo
    Un égoïste, c'est quelqu'un qui ne pense pas à moi !

  20. #19
    invite3f2bb8c8

    Re : PIC19F887 et C

    Non en mode debuggage, je vois que le port D contient 0x01 donc que le bit 0 est à l'état haut, ce qui veut dire que la lampe devrait s'allumer. Après ça il reste dans la boucle infinie et le bit reste à 1 tout le temps.

  21. #20
    Jack52

    Re : PIC19F887 et C

    Et ta lampe s'allume ou pas ??
    Comment à tu brancher ta lampe ? (Une patte sur ton pic l'autre à la masse)
    Qu'est-ce que c'est comme lampe ? (led, filament (230V, 75W))

    Car le mode débugage, te permet de voir ligne par ligne l'avencement de ton programme en temps réel, il visualise l'état des mémoires, des variables et tout se qui se passe !!

    Si ton programme c'est

    While(1) //Boucle infinie
    {
    PORTD.0=1; //Le bit 0 du port D vaut 1logique
    }
    C'est normal que sa reste à 1

    Après si tu fait sa
    While(1) //Boucle infinie
    {
    PORTD.0=1; //Le bit 0 du port D vaut 1logique
    delay_ms(500);
    PORTD.0=0; //Le bit 0 du port D vaut 0logique
    }
    La ta lampe va clignoter à une fréquence de 1Hz

    Donne ton shéma de câblage !!
    Un égoïste, c'est quelqu'un qui ne pense pas à moi !

  22. #21
    invite3f2bb8c8

    Re : PIC19F887 et C

    Ma lampe ne s'allume pas. J'utilise la plaque fournie par Microchip. Et je programmais jusque là en ASM. De tous les programmes que j'ai fait en ASM, à chaque fois que j'ai débuggé, ma lampe ne réagissait pas mais une fois que je programmais mon PIC, ça marchait, la lampe faisait comme je le voulais.

    Mes lampes sont des leds, connectées d'une part à la pin du PIC et d'autre part à une résistance relié à la masse.

    Je comprends parfaitement ton programme et l'ai même rédigé aussi. Mais je ne veux pas qu'elle clignote pour le moment, je veux juste l'allumer et quand j'aurai réussi à faire ça, je passerai à des bouts de programmes plus importants. Mon problème est de mettre mon code dans le PIC.

  23. #22
    zhal

    Re : PIC19F887 et C

    UN problème récurent avec les pickits 2 est qu'ils sont très sensible à la distance à laquelle ils sont séparés du PIC, grosso modo il ce situe a quelle distance ?

  24. #23
    invite3f2bb8c8

    Re : PIC19F887 et C

    Le pickit 2 est directement connecté à la plaquette où se trouve le PIC par un connecteur 6 voies, donc ce serait de l'ordre du centimètre. Je ne sais pas si ça joue. En effet, j'ai programmé mon PIC avec cette configuration pendant quelques temps en ASM et ça marchait.

  25. #24
    Jack52

    Re : PIC19F887 et C

    Désolé, je ne voit pas de quoi il s'agit !!

    Bonne chance
    Un égoïste, c'est quelqu'un qui ne pense pas à moi !

  26. #25
    zhal

    Re : PIC19F887 et C

    Alors la ce qui a changé entre le moment ou tu programmai en ASM et en C est la source du problème.

    Même environnement ? quel compilateurs utilise tu ? Cable ...

  27. #26
    invite3f2bb8c8

    Re : PIC19F887 et C

    Voilà, ça marchait avant quand je programmais en ASM, et ça ne marche plus maintenant que je programme en C. Je suis d'accord avec toi pour dire que le problème vient de là. Mais il me semblait avoir suivi tout le tutoriel que j'ai trouvé et cité plus haut.

    Au niveau du matériel c'est la même configuration:
    - ma plaque d'essai avec le PIC intégré
    - un pickit 2 reliant la plaque au PC via un port USB
    - un oscillateur externe (quartz de 4 MHz)

    Au niveau du soft:
    - en assembleur, je n'utilisais que MPLAB pour tout faire
    - en C, j'utilise toujours MPLAB mais j'y ai rajouté le logiciel CC5X que j'ai récupéré sur le site de Microchip après vérifié les compatibilités et l'avoir configuré selon le tutoriel mentionné plus haut

  28. #27
    zhal

    Re : PIC19F887 et C

    Je pose la question juste pour être certains que sa ne puisse pas venir de la. A tu vérifié le bon placement de tous les fils sur la plaque d'essai ? (Toujours sensible ces ptites bêtes la ) Sinon j'ai assez peu d'idées et ce type de compilateur m'est peu familier. Peut tu me fournir les messages d'erreur que te donne MPLAB ?

  29. #28
    invite3f2bb8c8

    Re : PIC19F887 et C

    Oui ma plaque n'a pas changé mais je viens de revérifier mes fils et il n'y a pas de problème de ce coté là non plus.
    MPLAB ne fournit pas de message d'erreur, au contraire il dit qu'il a bien programmé le PIC. Alors il m'est venu une idée comme ça, serait-il possible que le PIC ne soit pas assez alimenté par le PC?

  30. #29
    alainav1

    Re : PIC19F887 et C

    bonjour,
    tu peux avec pickit2 lire le fichier qui est dans ton pic , le transfere du pic vers le pickit2(pour verifier q'il y est bien )
    cordialement
    alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  31. #30
    zhal

    Re : PIC19F887 et C

    C'est vrai c'est une possibilité mais après reflexion, si il est stipulé qu'avec ce programmateur, le PIC est supporté, il ne devrai pas y avoir de soucis. Tu programme en basse tension ou tension normale ?

    De mémoire, a verifier, le port USB delivre environ 500mA donc largement suffisant pour programmer un PIC

Page 1 sur 2 1 DernièreDernière
Découvrez nos comparatifs produits sur l'informatique et les technologies.