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

Exemple de code C avec GPIO



  1. #1
    Tix

    Exemple de code C avec GPIO


    ------

    Salut

    Quelqun aurait-il un exemple de code C de gestion des GPIO ?
    et, est il possible de faire une PWM avec n'importe quelle pin d'un Pic ?

    merci, ++ Tix.

    -----

  2. Publicité
  3. #2
    Tix

    Re : Exemple de code C avec GPIO

    petit UP, pour voir

  4. #3
    freepicbasic

    Re : Exemple de code C avec GPIO

    la période est sur 256
    trame periode haute
    per periode basse

    modifier trame pour changer le rapport

    Code:
    unsigned char trame;
    unsigned char per;
    unsigned char i;
    
    trame=125;
    per = 255 - trame;
    
    PWM_moop:
    while (1) 
    {
        gpio=1;
        for (i=0;i<trame;i++);
        gpio=0;
        for (i=0;i<per;i++);
    }
    A+, pat

  5. #4
    SiNeRgY

    Re : Exemple de code C avec GPIO

    Hi
    Oui, il est possible de faire une PWM sur n'importe qu'elle pin d'un PIC, mais le probleme, c'est que le PIC a surement autre chose a faire, donc la ca se corse, car comme dit précedement, il faut une boucle while (true) pour faire la PWM indifinement.
    Il y'a des PIC qui gerent les PWM en hardware, c'est plus simple, mais t'es limité a queleques Pin.
    Si tu veux faire de la PWM en software, je crois qu'il n'y a pas mieux que de gerer des interruption sur débordement de timer .

  6. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  7. #5
    Tix

    Re : Exemple de code C avec GPIO

    merci beaucoup !!!

    je vais pouvoir commencer a bidouiller.
    j'aurais sans doutes d'autres questions d'ici quelques temps. merci encore !


    ++ Tix.

  8. A voir en vidéo sur Futura
  9. #6
    Tix

    Thumbs up Re : Exemple de code C avec GPIO

    Re-Salut

    dites donc, sauriez vous comment configurer un PIC12F629 ?

    Oscillation "interne" (sans quartz), avec ce code ci (ou presque)

    Code:
    void main(void)
    {
       bit bouton @ GPIO.3;
       while(1)
       {
          if(bouton)
          {
              ....
          }
       }
    
    }
    merci d'avance, ++ Tix.

  10. Publicité
  11. #7
    freepicbasic

    Re : Exemple de code C avec GPIO

    bits de config 0x0186
    sans protection , sans WD
    i/o sur les pins a la place du quartz
    et la pin mclr en I/O pas de mclr
    pas de BOD En

    BG1 et BG0 à zéro , il faudrait les lire avant d'effacer savoir si c'est différent
    ainsi que l'oscCal.

    pour configurer GPIO c est du code !!!
    A+, pat

  12. #8
    Tix

    Re : Exemple de code C avec GPIO

    merci beaucoup, j'essaye demain ^^

    ++

  13. #9
    Tix

    Re : Exemple de code C avec GPIO

    Bon, je perd pieds. je n'arrive pas a faire marcher ce ****** de pic.

    ...il sagit d'un PIC12F629. mon shéma est simple :

    Un bouton relié à GPIO3 (avec res de pullup), deux led reliées a GPIO.1 et GPIO.2 via des resistances de 150 ohms. rien d'autre

    J'aimerais faire ceci (programme de teste) :

    Quand j'appuie sur le contact (GPIO.3 = 1) la led 1 s'allume, l'autre non
    quand je relache le bouton (GHPIO.3=0) l'inverse se produit.

    Aucun autre composant, circuit sous 5V, compilateur CC5X, IDE Mplab, envoyé sur le pic avec ICprog

    pourriez vous, en connaissance de ces informations, me donner quelques infos sur ma réalisation ? (configuration "trisio" & "gpio" ect ... et surtout POURQUOI proceder ainsi) ?

    merci beaucoup, j'attende vos réponses avec impatience, ++ Tix.

  14. #10
    Tix

    Re : Exemple de code C avec GPIO

    J'ai du nouveau !!!

    j'ai fait un programme qui allume seulement toutes les sorties (à 1)

    mais voilà, elles ne s'allumes que quand, par inadvertance, j'ai posé le doigt sur certaines de ces sorties !!!!

    est-ce normal ?

  15. #11
    freepicbasic

    Re : Exemple de code C avec GPIO

    tu as une ou des entrées en l'air !
    Le fait de lire GPIO aléatoirement on lit 1 ou 0 selon la charge du moment.
    il faut faire un mask avec un and et le poids du bit concerné.

    exemple
    a = GPIO
    b = a AND 1 ' mask du bit 0 seul
    if b <>0 then ...

    b = a AND 2 ' mask du bit 1 seul
    if b <>0 then ...

    b = a AND 4 ' mask du bit 2 seul
    if b <>0 then ...

    etc...
    A+, pat

  16. #12
    Tix

    Re : Exemple de code C avec GPIO

    Merci !

    dans mon cas, je ne sait pas si ca va me dépanner, jai procedé comme ceci :

    Code:
    unsigned char a = GPIO.x ;// x etant la pin lue
    en ce qui concerne la "magie du doigt", elle n'a pas lieu quand (sur conseils) je met une capa de decouplage


    ++ Tix.

  17. Publicité
  18. #13
    freepicbasic

    Re : Exemple de code C avec GPIO

    je ne connais pas ton compilateur...
    Mais si tu utilise une instruction bit tu n'aura plus le problème.

    Pour la capas c'est bien normalement on devrait en mettre sur chaque entrée, mais c'est un bricolage si tu corrige pas le soft, la cause est soft.
    Tu peux t'attendre à des problèmes aléatoires sinon.
    A+, pat

  19. #14
    Tix

    Re : Exemple de code C avec GPIO

    merci, je vais tenter de refaire un prog avec t améthode.

    J'ai eu un semblant d'idée pour debugger ma méthode, et, a l'occasion, mes idées sur le sujet. Pourriez vous me transmettre un shéma simple, verifié par ceux qui savent, un programme controlable une fois "en route" (du style un clignottement visible) et une marche a suivre ?

    je vois arriver de là les habitués aux kevins, et, non , il ne sagit pas de me faire le boulot (j'en ais pas qui plus est) , mais de m'aider a corriger mes erreurs, et pourquoi pas, me faire voir des trucs que je ne vois pas actuelement.

    qu'en pensez vous ?

    merci, ++ Tix.

  20. #15
    freepicbasic

    Re : Exemple de code C avec GPIO

    je peux faire un truc simple comme exemple de départ mais avec mes outils perso.
    pic12F675 ?
    en freepicbasic on génère un asm universel aussi;
    http://perso.orange.fr/pat.deaubonne/pic/index.htm
    le programmateur de pic
    http://perso.orange.fr/pat.deaubonne...inPP/index.htm
    A+, pat

  21. #16
    freepicbasic

    Re : Exemple de code C avec GPIO

    exemple 1

    allumage progressif sur 1 seconde et bouclage infinie

    PWM sur GPIO 0

    Avec 3 boucles for
    trame variation de l'intensité du PWM
    progression 4 pour faire environ 1 sec, de 2 à 250.

    j'évite les cas particulier 0 et 255.

    i temps allumé
    delay de 100µs
    i temps éteint
    delay de 100µs

    255 x 100µs = 25 ms
    soit 50ms la trame 20hz

    modifier les delay µs pour accélérer la trame l'effet de scintillement disparaitra
    Fichiers attachés Fichiers attachés
    Dernière modification par freepicbasic ; 14/08/2007 à 11h10.
    A+, pat

  22. #17
    freepicbasic

    Re : Exemple de code C avec GPIO

    mettre en config 0x184 ou 0x185 (pas 0x186 c'est RC externe, mea culpa ...)
    A+, pat

  23. #18
    Tix

    Re : Exemple de code C avec GPIO

    merci beaucoup, je prend note de tout ca des que validé !

    je te tiend au courant !

  24. Publicité
  25. #19
    freepicbasic

    Re : Exemple de code C avec GPIO

    A+, pat

  26. #20
    Tix

    Re : Exemple de code C avec GPIO

    Merci bienbien

    t'as le shéma electronique ? (qui m'intéresse, histoire de pas faire d'erreur toute con ^^)

    merci, ++ Tix.

  27. #21
    freepicbasic

    Re : Exemple de code C avec GPIO

    +5v sur la pin 1
    gnd sur la pin 8
    1ko sur la pin 7 qui va à la led qui va à la masse.

    C'est tout, d'ailleurs on le vois sur la vidéo.

    Je fais pas un schéma pour si peu LOL.
    A+, pat

  28. #22
    Tix

    Re : Exemple de code C avec GPIO

    okok, merci beaucoup

Discussions similaires

  1. problème avec code bloc
    Par mat_the_bad_boy dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 10/10/2007, 01h33
  2. [Blanc] problème avec lave vaisselle aeg code 30
    Par fredspeed dans le forum Dépannage
    Réponses: 1
    Dernier message: 29/03/2007, 08h44
  3. (vb 6.0)création d'une feuille avec un bouton à l'aide du code
    Par edelweiss1 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 16/03/2007, 07h16
  4. FOUR SCHOLTES FM46.1 avec code ER06
    Par fablo dans le forum Dépannage
    Réponses: 1
    Dernier message: 22/05/2006, 09h41
Découvrez nos comparatifs produits sur l'informatique et les technologies.