Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 32

Problème avec un PIC 16F887.



  1. #1
    AdrienXx

    Problème avec un PIC 16F887.

    Salut, je débute avec les pic sur mplab et CC5X, et je suis bloqué. Enfaite j'essaye de programmer un pic 16F887 avec un petit programme qui allume une led quand j'apppuis sur un bouton poussoir. Voici mon code source écrit en C.

    //Label
    #define led PORTA.0
    #define inter PORTA.1
    //

    void main(void)
    {

    TRISA =0xFE; // Bits 1 à 15 en entrés
    PORTA = 0; // Initialisation à 0

    for(;

    {
    led = inter ;
    }


    }

    Voici la configuration des bits:




    Quand je le compile il ne me trouve aucune erreur. J'ai simuler sous proteus avec un pic 16F877 et mon prog fonctionne. Mais quand je teste avec mon 16F887 sur platine d'essaie cela ne marche pas. Hier j'ai essayer d'activer par ex les bit 1,3,5 et 7 et cela marchait donc ce n'est pas un problème de transmission.


    Voici mon schéma de cablage sur platine d'essaie.

    (Ici n'est pas representer la partie alimention + j'utilise un Quartz de 4Mhz).



    Quand pensez-vous ??Merci.

    -----


  2. Publicité
  3. #2
    sdec25

    Re : Problème avec un PIC 16F887.

    Salut,
    Le programme est correct, mais il n'y a pas quelque chose à configurer pour l'oscillateur ?

    Hier j'ai essayer d'activer par ex les bit 1,3,5 et 7 et cela marchait donc ce n'est pas un problème de transmission.
    Donc le PIC démarre. C'est déjà bien.
    Si les sorties fonctionnent mais pas les entrées, ça vient sûrement du type d'entrée. Si l'entrée est configurée en analogique, on ne peut pas l'utiliser en logique.
    J'ai aussi vu que "Low voltage program" est activé. C'est à éviter, si la broche de programmation est flottante et qu'on la touche, le PIC reset.

  4. #3
    AdrienXx

    Re : Problème avec un PIC 16F887.

    Salut sdec25 et merci pour ta contribution. As-tu une idée pour faire passer l'entré d'analogique en numérique ?? Merci.

  5. #4
    sdec25

    Re : Problème avec un PIC 16F887.

    Oui :
    ANSEL = 0; (section "I/O Ports" de la datasheet).
    Si ça ne marche toujours pas essaie de faire clignoter une diode.

  6. #5
    AdrienXx

    Re : Problème avec un PIC 16F887.

    OK je vais essayer ça. J'ai déja essayer de faire clignoter mais la j'ai un autre problème, ça bloque au niveau de la compilation. Voici mon Prog:

    #include "delay.c"

    //Label
    #define led PORTA.0

    //

    void main(void)
    {

    TRISA =0x00; // Bits 1 à 15 en entrés
    PORTA = 0; // Initialisation à 0

    for(;

    {
    led=!led;
    delay10(100);
    }


    }
    Voici mon message d'erreur:

    CC5X Version 3.4A, Copyright (c) B Knudsen Data, Norway 1992-2009
    --> FREE edition, 8-16 bit int, 24 bit float, 1.5k code, reduced optim.
    program.c:

    void main(void)
    {
    ^------
    Error[1] D:\Documents and Settings\Adrien\Mes documents\program\program.c 9 : Duplicate definition of function 'main'
    (The same function identifier is used for another function)

    Error options: -ew: no warning details -ed: no error details -eL: list details
    BUILD FAILED: Wed Jul 01 21:50:26 2009
    Donc j'ai compris que la fonction main etait utilisé deux fois, j'ai regarder a l'interieur du fichier delay.c et il y'a aussi un void main(void). Du coup j'ai changer le "main" de mon prog en "main2" je n'avais plus d'erreur. Mais une fois programmer la led ne clignote pas.

  7. A voir en vidéo sur Futura
  8. #6
    sdec25

    Re : Problème avec un PIC 16F887.

    Citation Envoyé par AdrienXx Voir le message
    Donc j'ai compris que la fonction main etait utilisé deux fois, j'ai regarder a l'interieur du fichier delay.c et il y'a aussi un void main(void). Du coup j'ai changer le "main" de mon prog en "main2" je n'avais plus d'erreur.
    Non il faut virer la fonction main de delay.c pas la tienne.

  9. Publicité
  10. #7
    AdrienXx

    Re : Problème avec un PIC 16F887.

    Je vien d'essayer ke prog de clignotement. J'ai enlever tt la fonction main de delay. Par contre y'a un truc bizard . j'ai mis le circuit sous tension . La led c'est allumé puis une seconde après ellle ce'st éteinte mais elle c'est toujours pas rallumé.

  11. #8
    sdec25

    Re : Problème avec un PIC 16F887.

    Essaie de désactiver Watchdog timer et Low voltage program.

  12. #9
    AdrienXx

    Re : Problème avec un PIC 16F887.

    J'ai desactiver le watch timer et le low voltage mais c'est toujours pareil . La led s'allume pdt 3-4s et puis s'eteind.

  13. #10
    sdec25

    Re : Problème avec un PIC 16F887.

    Remplace ton for par un while(1)
    Si ça ne marche toujours pas essaie au simulateur.

  14. #11
    eSb`

    Re : Problème avec un PIC 16F887.

    Et si tu mets led=~led; ? (donc le "tilde" à la place de "!")

  15. #12
    AdrienXx

    Re : Problème avec un PIC 16F887.

    Je viens d'essayer avec un while et ça n'a pas changer. J'ai aussi essayer en simu sous proteus avec un 16F877 et la LED reste tt le tps allumé.

  16. Publicité
  17. #13
    sdec25

    Re : Problème avec un PIC 16F887.

    Essaie ces programmes et donne le résultat :
    Code:
    led = 1;
    while(1);
    Code:
    led = 1;
    délai de 1s
    led = 0;
    délai de 1s
    led = 1;

  18. #14
    AdrienXx

    Re : Problème avec un PIC 16F887.

    #include "delay.c"

    //Label
    #define led PORTA.0

    //

    void main(void)
    {

    TRISA =0x00; // Bits 1 à 15 en entrés
    PORTA = 0; // Initialisation à 0

    for(;

    {
    led = 1;
    delay1s();
    led = 0;
    delay1s();
    led = 1;

    }
    }

    Sa bloque à la compil.

  19. #15
    sdec25

    Re : Problème avec un PIC 16F887.

    Citation Envoyé par AdrienXx Voir le message
    Sa bloque à la compil.
    A cause des delay1s ? Remplace les par des fonctions qui bloquent 1 seconde.
    Par exemple for(i=0; i<50000; ++i);

  20. #16
    eSb`

    Re : Problème avec un PIC 16F887.

    As-tu essayé ce que j'ai mis plus haut ?

    Si je ne m'abuse, l'opérateur "!" est booléen alors que le "~" est binaire, le premier est utile dans les tests, l'autre pour le changement des bits.

  21. #17
    AdrienXx

    Re : Problème avec un PIC 16F887.

    Je viens de remplacer par delay10(10), et ca na pa marcher mai je vien de me rendre compte que qd je serrai le quartz avec mes doight ca marche. La led clignote.

  22. #18
    AdrienXx

    Re : Problème avec un PIC 16F887.

    Par contre des que je le lache ca marche plus

  23. Publicité
  24. #19
    AdrienXx

    Re : Problème avec un PIC 16F887.

    Rectification ce'st qd je touche un condo. j'ai essayer avec un crayon et ca ne marche pa.

  25. #20
    sdec25

    Re : Problème avec un PIC 16F887.

    Citation Envoyé par eSb` Voir le message
    Si je ne m'abuse, l'opérateur "!" est booléen alors que le "~" est binaire, le premier est utile dans les tests, l'autre pour le changement des bits.
    ! est le non booléen, et ~ le non bit à bit :
    !0 = 1
    !1 = !2 = ... = 0
    ~0 = 0xFF
    ~0x0F = 0xF0
    Dans ce cas, les 2 doivent fonctionner.

    @ Adrien : un faux contact ?

  26. #21
    AdrienXx

    Re : Problème avec un PIC 16F887.

    Alors ça veut dire que ca ne devrait plas clignoter ? Pourtant en simu ça clignote aussi.

  27. #22
    AdrienXx

    Re : Problème avec un PIC 16F887.

    Ce qui est vraiment vraiment bizard ce'st que qd je touche mon regulateur ca clignote, qd je touche le condo qui ets a la sortie du regul ca clignote aussi. Tu crois que ce'st un pb de masse ?

  28. #23
    laurentnic

    Re : Problème avec un PIC 16F887.

    salut

    ton quartz est il bon??

    le câblage est il bon??

    j' ai fait un thermomètre avec un 16F877 +afficheur 2x16 avec une commande de relais+4 leds qui défilent en permanence

    Le tout marche impeccable depuis un ans

    je travaille sous mplab +cc5X

    je sais pas si tu as donné tout ton programme mais il me parait incomplet

    il faut configurer le config word

    déclarer le 16F877 au début du programme

    je pense qu'il faut déjà régler ton pb hard.

    cordialement

    Laurent

  29. #24
    laurentnic

    Re : Problème avec un PIC 16F887.

    le tien est un 887 ton schéma de principe est bon la résistance en série avec la led est un peu faible

    n'as tu pas grillé la sortie de ton port???

    moi je met du 680 Ohm

    voila pour ces quelque idées

    cordialement

    Laurent

  30. Publicité
  31. #25
    AdrienXx

    Re : Problème avec un PIC 16F887.

    En pratique j'ai mis une 510ohm. Je viens d'essayer avec une pile et je n'ai plus de pb de masse par contre . Quand je mets le circuit en route la del ne clignote pas tout de suite je suis obligé de faire un /MCLR de le mettre a la mass e puis au Vdd. C'est normal que ça clignote même si j'enlève le quartz ??

  32. #26
    AdrienXx

    Re : Problème avec un PIC 16F887.

    ton programme mais il me parait incomplet
    C'est vrais que j'ai du oublier des lignes mais je débute, je vois dans pas mal de prog des lignes du genre "#pragma config".

  33. #27
    sdec25

    Re : Problème avec un PIC 16F887.

    Citation Envoyé par AdrienXx Voir le message
    Quand je mets le circuit en route la del ne clignote pas tout de suite je suis obligé de faire un /MCLR de le mettre a la mass e puis au Vdd.
    Je ne vois plus ton schéma. Il faut relier MCLR au +5V

    C'est normal que ça clignote même si j'enlève le quartz ??
    Non.

  34. #28
    AdrienXx

    Re : Problème avec un PIC 16F887.

    /MCLR est bien relié au Vdd.

    C'est normal que ça clignote même si j'enlève le quartz ??
    Non.
    LOOOOL



  35. #29
    AdrienXx

    Re : Problème avec un PIC 16F887.

    SVP quelqu'un aurait-il une solution ??

  36. #30
    laurentnic

    Re : Problème avec un PIC 16F887.

    #pragma chip PIC16F877



    // config word
    #pragma config = 0x3F71



    /* global variables */

    unsigned char a;

    unsigned char test1;
    unsigned char test2;
    unsigned char val1;
    unsigned char val2;



    /* assign names to port pins */

    bit b1 @ PORTB.0;
    bit b2 @ PORTB.1;
    bit b3 @ PORTB.2;
    bit b4 @ PORTB.3;
    bit e @ PORTB.4;
    bit rs @ PORTB.5;

    bit in1 @ PORTD.0;
    bit in2 @ PORTD.1;
    bit in3 @ PORTD.2;
    bit in4 @ PORTD.3;

    bit out1 @ PORTD.4;
    bit out2 @ PORTD.5;
    bit out3 @ PORTD.6;
    bit out4 @ PORTD.7;
    bit out5 @ PORTC.4;


    bit read @ GO ;



    voila un début de programme qui marche

    déclaration du pic pour toi un 887

    config word

    déclaration des bit et assignation au port de sortie

    comment fais tu pour télécharger le programme dans le pic ????

    cordialement

    Laurent

Sur le même thème :

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Pic 16f887 timer0
    Par Snoopy85 dans le forum Électronique
    Réponses: 30
    Dernier message: 11/03/2009, 07h43
  2. Probleme avec pic
    Par emondfr dans le forum Électronique
    Réponses: 16
    Dernier message: 28/09/2007, 14h03
  3. probleme avec pic
    Par timodokk dans le forum Électronique
    Réponses: 2
    Dernier message: 19/07/2007, 14h50
  4. 16F887 avec MPLab 7.5 => CONFIG
    Par Toufinet dans le forum Électronique
    Réponses: 1
    Dernier message: 21/01/2007, 11h26
  5. Probleme CAN avec PIC
    Par Cyrius666 dans le forum Électronique
    Réponses: 1
    Dernier message: 09/06/2006, 16h54