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

mettre à 1 ou à 0 les pins d'un pic



  1. #1
    ElectRou

    mettre à 1 ou à 0 les pins d'un pic


    ------

    salut tout le monde;
    je programme mon pic avec la langage picC mais cette derniere ne me permet pas de declarer un tableau de bits ;j'ai essayé avec la langage microC qui est plus compliquer mais j'arrive pas à mettre un pin de mon pic à 1 ou à 0
    j'ai cherché dans le help mais ya pas de resultat
    j'espere que vous savez comment faire et merci en avance

    -----

  2. Publicité
  3. #2
    yoda1234

    Re : mettre à 1 ou à 0 les pins d'un pic

    Bonsoir,

    je pense que tu trouveras plus de réponses dans cette section du forum.
    Là où l'ignorance est un bienfait, c'est de la folie d'être sage (Thomas Gray).

  4. #3
    RISC

    Re : mettre à 1 ou à 0 les pins d'un pic

    Bonsoir,

    Quel PIC utilises-tu ?
    Quel compilateur C ?
    Poste ton programme qu'on puisse t'aider....

    a+

  5. #4
    ElectRou

    Re : mettre à 1 ou à 0 les pins d'un pic

    salut
    j'utilise le 16F877
    je veux mettre à 0 ou à 1 les pin du port D de mon pic
    j'ai declarer un tableau de bit à 2 dimensions tab[8][60] ={1,0,1,0,1,1,0,1......}
    et à chaque ligne je met a 1 ou à 0 les pins du port D (il faut me faire sortir soit +5V ou 0 V) mais je veux ça avec le microC
    je ne sais pas l'instruction qui le fait

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

    Re : mettre à 1 ou à 0 les pins d'un pic

    Salut,

    Si tu utilises le compilateur mikroC, tu pourras trouver tout un tas de projets ici (certains ne mikrobasic d'autres en mikroC) :
    http://www.mikroe.com/en/projects/mikrobasic.php
    et là http://www.mikroe.com/en/projects/mikroc.php

    De plus, il existe un forum dédié pour les utilisateurs de leurs compilateurs : http://www.mikroe.com/forum/

    Je te recommande de démarrer à partir d'exemples existants ainsi que ceux donné dans les manuels du mikroC.

    Pourrais-tu poster ton programme, cela serait plus clair pour voir comment tu écris sur les ports du micro et comment tu initialises les registres (quelles broches du portD utilises-tu ?)

    a+
    Dernière modification par RISC ; 25/05/2008 à 14h20. Motif: correction

  8. #6
    ElectRou

    Re : mettre à 1 ou à 0 les pins d'un pic

    salut,
    voici une portion de mon programme:
    int i;
    int tab[]={
    0b00000001,
    0b11110001,
    0b10011001};
    void main()
    {
    i=0;
    while (true)

    { do
    { PORTD=0;
    TRISD=tab[i];
    i++;
    }

    while (i!=3);
    }

    }

  9. Publicité
  10. #7
    freepicbasic

    Re : mettre à 1 ou à 0 les pins d'un pic

    Code:
    int i;
    int tab[]={
    0b00000001,
    0b11110001,
    0b10011001};
    
    void main()
    {
    i=0;
    TRISD=0;
    
    while (1)
    {
       PORTD=tab[i];
       MyDelay(200);
       i++;
       while (i ==3);  // blocage si i = 3
    }
    
    MyDelay(char nb)
    {
    int a,b
     for ( ;bn>0;nb--) 
       {
        for (a=0; a<255; a++)
           for (b=0; b<255; b++)
        }
    }
    A+, pat

  11. #8
    freepicbasic

    Re : mettre à 1 ou à 0 les pins d'un pic

    correction des erreurs.

    Code:
    MyDelay(char nb)
    {
    int a,b
     for ( ;nb>0;nb--) 
       {
        for (a=0; a<255; a++)
           for (b=0; b<255; b++);
        }
    A+, pat

  12. #9
    ElectRou

    Re : mettre à 1 ou à 0 les pins d'un pic

    salut;
    meme aprés la correction du programme il refuse de se compiler toujour un "internal error " apparait
    merci

  13. #10
    freepicbasic

    Re : mettre à 1 ou à 0 les pins d'un pic

    il faut peut être spécifié le type de pic...
    Il faudrait déterminer la ligne qui le bloque
    en les mettant 1 à 1 en commentaires par exemple.
    A+, pat

  14. #11
    eSb`

    Re : mettre à 1 ou à 0 les pins d'un pic

    Et comme ceci ?

    Déclaration de la fonction avant son utilisation, avec valeur qu'elle doit renvoyer (rien donc void)
    Ajout d'un ";" après int a,b
    Et ajout d'un ";" pour la boucle, pour qu'elle contienne quelque chose
    Et ajout d"un "}" pour fermer ton main()
    Code:
    void MyDelay(char nb);
    
    int i;
    int tab[]={
    0b00000001,
    0b11110001,
    0b10011001};
    
    void main()
    {
    i=0;
    TRISD=0;
    
      while (1)
      {
         PORTD=tab[i];
         MyDelay(200);
         i++;
         while (i ==3);  // blocage si i = 3
      }
    }
    
    void MyDelay(char nb)
    {
    int a,b;
     for (;nb>0;nb--)
       {
        for (a=0; a<255; a++)
           for (b=0; b<255; b++);
       }
    }
    Par contre, je viens de tester dans microC et ça met un temps dingue avant que nb se décrémente ; ).
    Dernière modification par eSb` ; 25/05/2008 à 22h49.

  15. #12
    freepicbasic

    Re : mettre à 1 ou à 0 les pins d'un pic

    il lui faut un protype avant apparement.
    Certain compilo accepte si on met les procédures avant le main
    Mais effectivement un proto avant c'est plus pro.

    reduire les boucles c'est tout , j'ai mis au pif 255...
    Je ne sais pas si c'est du compilé ou de l'interprèter et la vitesse du quartz.
    A+, pat

  16. Publicité
  17. #13
    freepicbasic

    Re : mettre à 1 ou à 0 les pins d'un pic

    J'ai pas le compilo donc pas testé les erreurs de syntaxe et accolade etc...
    A+, pat

  18. #14
    eSb`

    Re : mettre à 1 ou à 0 les pins d'un pic

    Ok, c'est sûr que c'est plus simple en lançant la compilation pour voir les bêtes erreurs syntaxiques ; ).

    Pour le prototype, ça à l'air de passer si on déclare la fonction avant le main(), mais ça me paraît plus propre de laisser le main() au début. (à discuter sûrement : )).

    Ps: j'avais édité pour mettre le prototype avant la déclaration des variables mais apparemment, j'ai pas validé...
    Donc ça me paraîtrait encore mieux.

  19. #15
    freepicbasic

    Re : mettre à 1 ou à 0 les pins d'un pic

    Citation Envoyé par eSb` Voir le message
    Ps: j'avais édité pour mettre le prototype avant la déclaration des variables mais apparemment, j'ai pas validé...
    Donc ça me paraîtrait encore mieux.
    On les met généralement avec les #include
    Puisqu'on fait un fichier header ("PROTOTYPE.H") pour les grosse applications.
    A+, pat

  20. #16
    ElectRou

    Re : mettre à 1 ou à 0 les pins d'un pic

    salut;
    désolé Freepicbasic, mais j'ai pas compri le role de la fonction "MyDelay"
    merci

  21. #17
    freepicbasic

    Re : mettre à 1 ou à 0 les pins d'un pic

    c'est juste pour attendre entre 2 affichages , si on envoie tout à la suite , on verra rien.
    J'ai mis des valeurs qui sont à ajuster si c'est trop long (d'après eSb').

    On fait juste des boucles pour perdre du temps.

    Il existe peut être une fonction toute faite avec ton compilo.
    A+, pat

  22. #18
    eSb`

    Re : mettre à 1 ou à 0 les pins d'un pic

    La fonction Delay_ms(VALEUR); existe, donc je suppose qu'elle fait ce que tu veux ; ).
    (j'y ai pas pensé plus tôt )

    Je sais pas en dire plus, j'ai le compilo mais je dois attendre encore 1 mois pour pouvoir apprendre le langage et la programmation des PICs : /. (vive les examens ; ))

  23. Publicité
  24. #19
    freepicbasic

    Re : mettre à 1 ou à 0 les pins d'un pic

    dans ce cas remplacer MyDelay par Delay_ms(200) qui existe , c'est plus facile et suprimer la procédure MyDelay.

    Inutile d'attendre 1 mois pour ça !
    LOL
    A+, pat

Discussions similaires

  1. Rajout 4 pins sur alim 20 pins
    Par Davidoll dans le forum Électronique
    Réponses: 5
    Dernier message: 12/02/2008, 19h24
  2. PIC : pins multiplexées avec l'ICSP / MCLR
    Par Toufinet dans le forum Électronique
    Réponses: 5
    Dernier message: 17/10/2007, 18h18
  3. comment ce mettre au PIC
    Par nanard dans le forum Électronique
    Réponses: 2
    Dernier message: 30/09/2006, 12h34
  4. Les PIC comment s'y mettre?
    Par invite14532198711 dans le forum Électronique
    Réponses: 7
    Dernier message: 21/04/2006, 08h15
  5. Réponses: 4
    Dernier message: 31/12/2005, 15h09
Découvrez nos comparatifs produits sur l'informatique et les technologies.