PIC chenillard
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

PIC chenillard



  1. #1
    invite7dc03981

    PIC chenillard


    ------

    while (1) {

    LEDA0=1;
    delay_ms(200);
    LEDA1=1;
    delay_ms(200);
    LEDA2=1;



    Voila je realise un petit chenillard mais en fait je rencontre un probleme, lorsque la LEDA0 s'allume, elle le reste 200 ms puis s'allume la LEDA1 mais par contre la LEDA0 s'éteint moi je voudrais qu'elle reste allumée ainsi de suite comment faire?


    Merci

    -----

  2. #2
    RISC

    Re : PIC chenillard

    Salut,

    Quel compilateur utilises-tu ?
    Quelle carte électronique ?

    Je suppose qu'il faut faire un OU bit à bit entre LEDA0, LEDA1, LEDA2(voir les tutoriels sur le C)

    Cependant la méthode la plus simple est de créer un table en FLASH ou les différentes patterns de tes leds seraient stockées.
    Ensuite il suffit de venir les prendre une par une et des les copier sur le port ou se trouve les LEDS.

    a+

  3. #3
    invite0a63013b

    Re : PIC chenillard

    Bsr

    Citation Envoyé par newtech1 Voir le message
    while (1) {

    LEDA0=1;
    delay_ms(200);
    LEDA1=1;
    delay_ms(200);
    LEDA2=1;



    Voila je realise un petit chenillard mais en fait je rencontre un probleme, lorsque la LEDA0 s'allume, elle le reste 200 ms puis s'allume la LEDA1 mais par contre la LEDA0 s'éteint moi je voudrais qu'elle reste allumée ainsi de suite comment faire?


    Merci
    c'est quoi LEDA0 ? montrez comment avez vous définis ces deux LEDs ?

    je vous conseille de brancher vos LEDs sur le même PORT et d'effectuer un décalage (à gauche ou à droite), il sera plus facile et plus optimal

    @+

  4. #4
    invite7dc03981

    Re : PIC chenillard

    #define LEDA0 PORTA.F0
    #define LEDA1 PORTA.F1




    void soncom()





    void main() {

    unsigned char a;

    TRISA=0;

    PORTA=0;





    while(1)
    {

    LEDA0=1;
    delay_ms(1000);
    LEDA0=1;
    LEDA1=1;
    delay_ms(1000);


    }


    }



    voici juste le début, en fait je voudrais savoir est ce que c'est possible en utilisant seulement des delays, que lorsque LEDA1 (la led sur le port RA1) s'allume la led LEDA0 reste allumé mais lorsque je teste, LEDA0 s'éteint des que LEDA1 s'allume or moi je voudrais que ca reste allumé ainsi de suite comment peut on faire?

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

    Re : PIC chenillard

    PORTA.F0 ??? C'est quel compilateur ?
    Quel µC ?
    Quelle initialisation ?

  7. #6
    invite635643ae

    Re : PIC chenillard

    Salut



    Normal, la fonction delay_ms() ne permet d'effectuer qu'une seule action, tu ne peux pas faire une autre action pendant ce temps or toi tu lui demandes d'effectuer deux actions LEDA0=1;LEDA1=1;delay_ms(1000) ;

    allumer la LEDA0 et la LEDA1 pendant 1 seconde, il n'obéira qu'a une seule instruction (la derniere) et c'est l'inconvénient du delay_ms().

    Pour résoudre le problème, soit tu utilises le Timer du PIc


    Soit simplement tu fais comme ca

    PORTA=0b000001;
    delay_ms(1000);
    PORTA=0b000011; // Il t'allume les deux leds dans ce cas, c'est considéré comme une seule instruction



    voila ++

Discussions similaires

  1. Chenillard
    Par invitea6e61506 dans le forum Électronique
    Réponses: 16
    Dernier message: 31/05/2009, 12h44
  2. chenillard
    Par invitec99bce63 dans le forum Électronique
    Réponses: 1
    Dernier message: 17/12/2008, 08h32
  3. chenillard avec PIC
    Par invite3196f607 dans le forum Électronique
    Réponses: 2
    Dernier message: 25/05/2008, 18h42
  4. chenillard 1H
    Par invite8e48814f dans le forum Électronique
    Réponses: 25
    Dernier message: 10/08/2007, 17h05
  5. CHENILLARD sur PIC 16 F, Comment fais t-on??
    Par invitee002cb17 dans le forum Électronique
    Réponses: 2
    Dernier message: 03/05/2006, 12h14
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...