Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 40 sur 40

Ir et pic code RC5



  1. #31
    aminovich87

    Re : Ir et pic code RC5


    ------

    Citation Envoyé par kronanberg Voir le message
    Voila j'ai retrouvé le schéma de principe que j'ai réalisé pour décoder la trame RC5.
    bonjour
    je suis un débutant avec le micro c et l'utilisation du pic
    je viens de rédiger un programme pour décoder une trame RC5 et utiliser les 6 derniers bits de commande.voila le programme
    void interrupt()
    {
    delay_us(10668); //sauter 6bits
    //delay_us(7112);
    int cmd=0;
    if(PORTB.F0=1)
    /*cmd=cmd+0b00100000;
    delay_us(1778);
    if(PORTB.F0=1)
    cmd=cmd+0b00010000;*/
    delay_us(1778);
    delay_us(1778);
    if(PORTB.F0=1)
    cmd=cmd+0b00001000;
    delay_us(1778);
    if(PORTB.F0=1)
    cmd=cmd+0b00000100;
    delay_us(1778);
    if(PORTB.F0=1)
    cmd=cmd+0b00000100;
    delay_us(1778);
    if(PORTB.F0=1)
    cmd=cmd+0b00000010;
    delay_us(1778);
    if(PORTB.F0=1)
    cmd=cmd+0b00000001;
    delay_us(1778);

    PORTC=cmd;
    INTCON.F0=0.
    }
    void main()
    {
    int nbit=0;
    int cmd=0;

    TRISB = 0xFF;
    TRISC= 0x00;
    PORTC = 0x00;
    delay_ms(1000);
    PORTC = 0xFF;
    INTCON=0b10001000;
    do
    {
    if(PORTB.F0=1)
    {
    delay_us(1778);
    nbit++;
    }
    else nbit=0;


    } while(nbit<2);
    nbit=0;
    delay_us(444);

    while(1);



    }
    }

    -----

  2. Publicité
  3. #32
    aminovich87

    Re : Ir et pic code RC5

    Citation Envoyé par aminovich87 Voir le message
    bonjour
    je suis un débutant avec le micro c et l'utilisation du pic
    je viens de rédiger un programme pour décoder une trame RC5 et utiliser les 6 derniers bits de commande.voila le programme
    void interrupt()
    {
    delay_us(10668); //sauter 6bits
    //delay_us(7112);
    int cmd=0;
    if(PORTB.F0=1)
    /*cmd=cmd+0b00100000;
    delay_us(1778);
    if(PORTB.F0=1)
    cmd=cmd+0b00010000;*/
    delay_us(1778);
    delay_us(1778);
    if(PORTB.F0=1)
    cmd=cmd+0b00001000;
    delay_us(1778);
    if(PORTB.F0=1)
    cmd=cmd+0b00000100;
    delay_us(1778);
    if(PORTB.F0=1)
    cmd=cmd+0b00000100;
    delay_us(1778);
    if(PORTB.F0=1)
    cmd=cmd+0b00000010;
    delay_us(1778);
    if(PORTB.F0=1)
    cmd=cmd+0b00000001;
    delay_us(1778);

    PORTC=cmd;
    INTCON.F0=0.
    }
    void main()
    {
    int nbit=0;
    int cmd=0;

    TRISB = 0xFF;
    TRISC= 0x00;
    PORTC = 0x00;
    delay_ms(1000);
    PORTC = 0xFF;
    INTCON=0b10001000;
    do
    {
    if(PORTB.F0=1)
    {
    delay_us(1778);
    nbit++;
    }
    else nbit=0;


    } while(nbit<2);
    nbit=0;
    delay_us(444);

    while(1);



    }
    }
    svp dite moi est ce ke c bon ce programme ou pas.
    merci d'avance

  4. #33
    redtronic

    Re : Ir et pic code RC5

    bonjour,
    ton programme est faut.
    @+
    Redtronic

  5. #34
    aminovich87

    Re : Ir et pic code RC5

    Citation Envoyé par redtronic Voir le message
    bonjour,
    ton programme est faut.
    @+
    vous pouvez me dire c koi la faute et me donner des indications svp
    merci

  6. #35
    redtronic

    Re : Ir et pic code RC5

    bonsoir,
    ben la solution est plus haut
    Redtronic

  7. #36
    paulfjujo

    Re : Ir et pic code RC5

    bonjour

    ton programme est faux
    if(PORTB.F0=1)
    test avec == sinon c'est une affectation

  8. Publicité
  9. #37
    ilyasse192

    Re : Ir et pic code RC5

    bonsoir Mr.bypbop j'ai lu touts vos message avec maximilien concernant le code RC5 et je veux savoir si tu peux me donner des petites explications (merci d'avance) j'ai avancé un peu sur les interrupts les TMR0 1 2
    Dernière modification par ilyasse192 ; 01/11/2013 à 00h01.

  10. #38
    hayem117

    Re : Ir et pic code RC5

    bonjour aminovich, je suis technicien en électronique et je suis entrain de réaliser un émetteur récepteur ir , je voudrais bien que vous m'expliquiez
    pourquoi en ajoute un 1 dans la trame et en décale vers la droite d'une position merci. Voici mon email au cas ou vous voulez me répondre .
    ####### Email supprimé car hors charte
    Dernière modification par gienas ; 10/01/2015 à 08h53. Motif: Suppression de coordonées personnelles

  11. #39
    paulfjujo

    Re : Ir et pic code RC5

    bonjour,


    un programme pour décoder une trame RC5 et utiliser les 6 derniers bits de commande
    On veut recuperer QUE les 6 derniers bits de la trame

    pourquoi en ajoute un 1 dans la trame et en décale vers la droite d'une position
    on ne rajoute pas un 1 dans la trame, ni de decalage,

    La trame est un ensemble de 14 bits espacés chacun d'un certain delai (1778µS).
    Le debut de trame est detecté par le front montant appliqué sur RB0 => interruption
    apres avoir laissé passer les 6 bits d'entete de trame (via le delai 10668µS)
    + 2 autres bits (2x1778µS) faisant partie de la commande, mais non utilisés dans ce programme

    on teste l'etat de l'entree RB0 , pour reconstituer le code de commande (cmd initialisé à 0 au debut)
    et dans l'ordre d'arrivée, ceci par un masque pour n'isoler que les 4 derniers bits de commande
    si l'etat de RB0 est à 1 on rajoute le poids equivalent du bit testé
    et ainsi de suite pour les bits suivant

    Code:
    if(PORTB.F0==1)
    cmd=cmd+0b00001000;          // bit 2^3 =8
    delay_us(1778);   //  attente du bit suivant
    on peut donc recupérer dans la variable cmd
    une valeur comprise entre 0 et 15...

    suggestion de modification de ce programme
    l'interruption >RB0 ne doit pas etre valide si on fait un test pooling dessus..
    Tant qu'à faire autant recuperer les 6 bits de la commande plutot que 4 seulement.
    L'affichage sur leds PORTC dans le main.
    Tester la source d'interruption:
    c'est une bonne habitude meme si pas necessaire dans ce cas precis.

    Code:
    volatile char FLAG
    volatile unsigned char cmd;
    
    void interrupt()
    {
    if ((RBIF_bit==1) && ( RBIE_bit==1))
    {
    cmd=0;
    delay_us(10668); //sauter 6bits
    delay_us(444);  // attente 1/4 de bit pour etre sur d'etre sur le palier etat haut
    if(PORTB.F0==1) cmd=cmd+0b00100000;
    delay_us(1778);
    if(PORTB.F0==1) cmd=cmd+0b00010000;
    delay_us(1778);
    if(PORTB.F0==1) cmd=cmd+0b00001000;
    delay_us(1778);
    if(PORTB.F0==1) cmd=cmd+0b00000100;
    delay_us(1778);
    if(PORTB.F0==1)  cmd=cmd+0b00000010;
     delay_us(1778);
     if(PORTB.F0==1) cmd=cmd+0b00000001;
     delay_us(1778);
     FLAG=1;
     INTCON.F0=0.
     }
    }
    
    void main()
    {
    int nbit=0;
    
    TRISB = 0xFF;
    TRISC= 0x00;
    PORTC = 0x00;
    delay_ms(1000);
    PORTC = 0xFF;
    FLAG=0;
     INTCON=0; // pas d'interruption
    do
    {
      // attente de 2 etats hauts consecutifs de RB0 = detecte la Pause inter-trame
       do
        {
            if(PORTB.F0=1)
            { 
    		delay_us(1778);
    		nbit++;
            }
            else nbit=0;
        } while(nbit<2);
        nbit=0;
        FLAG=0;
        INTCON=0b10001000;  // arme interruptions
        while(FLAG==0);      // tant qu'il n'y a pas d'interruption sur RB0
          INTCON=0;
          PORTC=cmd;    // affichage du code cmd sur leds portC
      } while(1); 
    }
    Dernière modification par paulfjujo ; 10/01/2015 à 11h23.

  12. #40
    hayem117

    Re : Ir et pic code RC5

    Bonjour, tout d'abord merci pour votre explication , peut-on aussi m'expliquer le pourquoi du décalage vers la droite de la trame d'un bit (600us si j'ai bien compris),
    ensuite un ou logique avec 8000 ((en hexa), puis un décalage de 1800us quand il s'agit de ir=0 et 1200us pour ir=1.
    si c'est possible avec un exemple serai bien reçu .merci bien à vous.

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. émission d'un code RC5 sans pic
    Par Van16 dans le forum Électronique
    Réponses: 3
    Dernier message: 01/06/2009, 18h19
  2. émission d'un code RC5 sans pic
    Par Van16 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 01/06/2009, 12h08
  3. telecommande RC5 sur pic 18F
    Par jum0034 dans le forum Électronique
    Réponses: 9
    Dernier message: 15/10/2008, 18h47
  4. recuperation de code ir rc5 avec pic
    Par taz6cle dans le forum Électronique
    Réponses: 6
    Dernier message: 20/09/2008, 19h25
  5. emetteur code RC5 par pic
    Par alainav1 dans le forum Électronique
    Réponses: 7
    Dernier message: 25/10/2005, 14h44
Découvrez nos comparatifs produits sur l'informatique et les technologies.