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

Aide pour PIC en C



  1. #1
    czarama

    Red face Aide pour PIC en C


    ------

    Salut à tous,

    Ça fait quelques jours que j’essaie de faire un petit test en c avec mon 16f84, a vraie dire je rien réussi pour le moment.
    J’essaie d’allumer un simple led avec un bouton.

    Le led se trouve dans la RB2 et le bouton dans la RB2, mon code

    Si quelqu’un peut m’aide ça serait sympa.

    void main( void)
    {

    TRISA = 0b11111111;
    TRISB = 0b00000000;

    while(1)
    {
    RA1 = RB1;
    }
    }

    -----

  2. Publicité
  3. #2
    nifrou

    Re : Au scours PIC et C

    salut
    tu a tout mis pour le portB.
    donc le bouton ne feras rien
    participant au projet d'ordinateur console de jeux libre FDOGS

  4. #3
    HULK28

    Re : Au scours PIC et C

    Citation Envoyé par czarama Voir le message
    Salut à tous,

    Ça fait quelques jours que j’essaie de faire un petit test en c avec mon 16f84, a vraie dire je rien réussi pour le moment.
    J’essaie d’allumer un simple led avec un bouton.

    Le led se trouve dans la RB2 et le bouton dans la RB2, mon code

    Si quelqu’un peut m’aide ça serait sympa.

    void main( void)
    {

    TRISA = 0b11111111;
    TRISB = 0b00000000;

    while(1)
    {
    RA1 = RB1;
    }
    }
    Salut,

    oui c'est sur que ça va pas le faire.
    TRISA et TRISB sont les registres de direction des ports A et B.
    Il faudrait peut-être que tu positionnes ton BP sur une entrée et ta led en sortie.
    De plus si ton prog démarre comme ça, comment ton compilateur sait avec quel µC tu travailles?
    Avec quel compilateur travailles-tu?
    Le génie est fait d'1 pour cent d'inspiration et de 99% pour cent de transpiration. Edison

  5. #4
    czarama

    Re : Aide pour PIC en C

    Je m’excuse j’ai tout mélangé,

    RA1 est le bouton
    RB1 est la led

    Et le code


    void main( void)
    {

    TRISA = 0b11111111;
    TRISB = 0b00000000;

    while(1)
    {
    RB1 = RA1;
    }
    }

  6. #5
    czarama

    Re : Aide pour PIC en C

    et je travaille avec MPLAB

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

    Re : Aide pour PIC en C

    Citation Envoyé par czarama Voir le message
    et je travaille avec MPLAB
    Oui mais MPLAB ne contient pas de compilateur C, il faut que tu lui en associe un.
    Le génie est fait d'1 pour cent d'inspiration et de 99% pour cent de transpiration. Edison

  9. Publicité
  10. #7
    Nithael

    Re : Aide pour PIC en C

    Salut

    déjà il faut que tu mettes une condition d'appui sur ton bouton.

    du genre:

    while(1)
    {
    if (PORTAbits.RA1==0) // on a appuyé sur le BP
    {
    PORTBbits.RB1=1-PORTBbits.RB1;// permet de changer l'état de la led
    }
    }
    Physique Murphienne: Tout corps plongé dans un liquide reçoit un coup de téléphone

  11. #8
    czarama

    Re : Aide pour PIC en C

    à MPlab j'a associe le compilateur cc5x,

    j'ai essaie le code suivant et ça marhe toujours pas

    while(1)
    {
    if (RA1==0) // on a appuyé sur le BP
    {
    RB1=1;
    }
    else
    {
    RB1=0;
    }

    }

  12. #9
    HULK28

    Re : Aide pour PIC en C

    Citation Envoyé par Nithael Voir le message
    Salut

    déjà il faut que tu mettes une condition d'appui sur ton bouton.

    du genre:

    while(1)
    {
    if (PORTAbits.RA1==0) // on a appuyé sur le BP
    {
    PORTBbits.RB1=1-PORTBbits.RB1;// permet de changer l'état de la led
    }
    }
    Oui mais il faut d'abord initialiser les ports après leur avoir indiqué dans quel sens on va les utiliser.
    Le génie est fait d'1 pour cent d'inspiration et de 99% pour cent de transpiration. Edison

  13. #10
    Nithael

    Re : Aide pour PIC en C

    As tu une erreur de compilation deja?

    Si ce n'est pas le cas , ca peut venir aussi de ta carte, vérifie bien tes contacts...
    Physique Murphienne: Tout corps plongé dans un liquide reçoit un coup de téléphone

  14. #11
    czarama

    Re : Aide pour PIC en C

    toujours pas


    void main( void)
    {


    PORTA = 00000000;
    PORTB = 00000000;

    TRISA = 0b11111111;
    TRISB = 0b00000000;

    while(1)
    {
    if (RA1==0) // on a appuyé sur le BP
    {
    RB1=1;
    }
    else
    {
    RB1=0;
    }

    }
    }

  15. #12
    Nithael

    Re : Aide pour PIC en C

    Citation Envoyé par HULK28 Voir le message
    Oui mais il faut d'abord initialiser les ports après leur avoir indiqué dans quel sens on va les utiliser.
    Oui Hulk tu as raison je ne parlais que du programme allumant ou éteignant le led a proprement dit...
    Physique Murphienne: Tout corps plongé dans un liquide reçoit un coup de téléphone

  16. Publicité
  17. #13
    czarama

    Re : Aide pour PIC en C

    A la compilation tout passe bien, j'ai deja testé ma carte avec un autre example qui venait avec en assambleur et sa marche, du cote des connexions il peut pas avoir d'erreur car j'outilise le KIT VM-111 de vellman, et tout est deja branché

  18. #14
    HULK28

    Re : Aide pour PIC en C

    Citation Envoyé par czarama Voir le message
    toujours pas

    #include <pic16F84.h>// déclarations pour le PIC16F84


    void main( void)
    {


    PORTA = 1;
    PORTB = 0;

    TRISA = 0b11111111;
    TRISB = 0b00000000;

    while(1)
    {
    if (RA1==0) // on a appuyé sur le BP
    {
    RB1=1;
    }
    else
    {
    RB1=0;
    }

    }
    }
    La déclaration du include dépend des compilo donc à vérifier (p16F84 ou pic16F84)
    -------------
    Dernière modification par HULK28 ; 29/08/2006 à 16h43.
    Le génie est fait d'1 pour cent d'inspiration et de 99% pour cent de transpiration. Edison

  19. #15
    czarama

    Re : Aide pour PIC en C

    J'a changé ton code par le suivant mais ça passe à la compilation et j'ai specifié ds MPlab le type de pic, car ceui-ci peut être passé en parametre au cc5x

    #pragma chip PIC16F84A

    void main( void)
    {


    PORTA = 0;
    PORTB = 1;
    TRISA = 0b11111111;
    TRISB = 0b00000000;

    while(1)
    {
    if (RA1==0) // on a appuyé sur le BP
    {
    RB1=1;
    }
    else
    {
    RB1=0;
    }

    }
    }

  20. #16
    czarama

    Re : Aide pour PIC en C

    mais ça marche toutjours pas

  21. #17
    Nithael

    Re : Aide pour PIC en C

    Ca me paraît bizarre d'initialiser le port A à 0 sachant que tu fais ta condition d'apui bouton qd RA1 passe à 0... mais bon ca ne devrait pas être génant ça.
    CE que tu peux essayer c'est de faire tourner ton programme en mode debug en plaçant 1 ou 2 breakpoints pour voir si les bits de tes registres prennent bien les valeurs que tu leur donnes
    Physique Murphienne: Tout corps plongé dans un liquide reçoit un coup de téléphone

  22. #18
    HULK28

    Re : Aide pour PIC en C

    Citation Envoyé par czarama Voir le message

    #pragma chip PIC16F84A

    bit bouton @ PORTA.1
    bit led @ PORTB.1

    void main( void)
    {

    TRISA = 0xFF;
    TRISB = 0;
    PORTA = 0x02;
    PORTB = 0;

    while(1)
    {
    if (bouton==0) // si appui sur BP
    led=1;
    else
    led=0;


    }
    }
    Ca devrait fonctionner sous réserve de vérifier avec la syntaxe de CC5X...
    Dernière modification par HULK28 ; 29/08/2006 à 17h57.
    Le génie est fait d'1 pour cent d'inspiration et de 99% pour cent de transpiration. Edison

  23. Publicité
  24. #19
    czarama

    Re : Aide pour PIC en C

    j'ai testé le debuger et tout ce passe bien

  25. #20
    czarama

    Re : Aide pour PIC en C

    Je dois partir, si jamais t'as une idée merci de la poster sinon je serais demain matin a nouveau en train de demander de l'aide.

    et merci quand meme.

  26. #21
    HULK28

    Re : Aide pour PIC en C

    Dis moi au moins ce que tu as rentré comme programme si tu veux que j'essaie de mon coté.
    Le génie est fait d'1 pour cent d'inspiration et de 99% pour cent de transpiration. Edison

  27. #22
    Invité

    Re : Aide pour PIC en C

    Citation Envoyé par czarama Voir le message
    mais ça marche toutjours pas
    salut
    tu as vérifié les bits de configuration du pic ? horloge, watchdog ?

    A+,

    Bruno

  28. #23
    minouche

    Re : Aide pour PIC en C

    salut
    c'est normal que ca marche pas avec un tel foutoir

    en premier lieu effectivement declarer le type de PIC et le fichier associé

    #include <16F84.H>

    ensuite dans le prog principal declarer quel broche en entrée ou sortie
    set_tris_A(0b00000000);
    set_tris_B(0b11111111);
    ou 0 place la broche correspondante en sortie
    1 " " " en entrée
    apres l'ecriture n'est pas correcte tu doit definir le port et la broche (avec CCS je ne connais pas CC5 a verifier)


    do
    {
    if (bit_test(PORT_A,1)==1)
    {
    port_B=0b11111111;
    }
    else
    {
    port_B=0b00000000;
    }
    }
    while(true);



    A+

  29. #24
    HULK28

    Re : Aide pour PIC en C

    Pourquoi tu t'énerves minouche, on l'a déjà dis tout ça.

    Le problème comme trop souvent, c'est que les petits jeunes en programmation mettent la charrue avant les boeufs, c'est à dire qu'ils veulent avoir fini le programme avant d'avoir appris le C et vérifier que ça marche avant d'avoir acheté la première résistance...
    Le génie est fait d'1 pour cent d'inspiration et de 99% pour cent de transpiration. Edison

  30. Publicité
  31. #25
    mictour

    Re : Aide pour PIC en C

    Bonjour CZARAMA,

    Regarde ici :http://hhollard.club.fr/prog_pic_c.htm
    Il s'agit d'un cours clair et bien construit pour débuter avec CC5X, seul problème ... il est en français! !

    Bonne lecture à toi CZARAMA.

    Petit proverbe : Quand tu donnes du poisson à un homme tu lui donnes à manger pour un journée, si tu lui apprends à pêcher tu lui donnes à manger pour toute sa vie.
    mictour.

  32. #26
    czarama

    Re : Aide pour PIC en C

    Brunog merci il me semble que tout mon probleme etait dans les bits de configuration.

    en que qui concerne le code il reste comme ça


    void main( void)
    {


    PORTA = 0b00000000;
    PORTB = 0b00000000;

    TRISA = 0b11111111;
    TRISB = 0b00000000;

    while(1)
    {

    RB1 = RA1;
    RB2 = RA2;
    }
    }



    En effet avec MPlab il n'y a pas besoin de specifier le type de PIC dans le code car ceci est deja fait dans les proprietes du projet.

    Merci quand meme les gas avec cela je peux commencer a travailler avec ce pic.

Sur le même thème :

Discussions similaires

  1. Réponses: 8
    Dernier message: 08/05/2009, 02h47
  2. pic 16f84a aide
    Par tomson dans le forum Électronique
    Réponses: 8
    Dernier message: 03/02/2009, 19h24
  3. Aide PIC à programmé pour faire marché un affichage LCD
    Par Raphael2 dans le forum Électronique
    Réponses: 48
    Dernier message: 19/01/2008, 19h40
  4. Aide pour programme PIC18F (PIC-->CNA)
    Par strat666 dans le forum Électronique
    Réponses: 1
    Dernier message: 12/06/2006, 22h54
  5. quelle platine pour PIC????? aide
    Par saad807 dans le forum Électronique
    Réponses: 2
    Dernier message: 19/04/2006, 21h57