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

Programmation: Emetteur Recepteur IR



  1. #1
    IHCAAMEL

    Question Programmation: Emetteur Recepteur IR


    ------

    Salut tout le monde,

    Je reviens avec des problèmes comme d'habitude j'ai une erreur dans ma programmation et j'espère avoir de l'aide par vos conseils si vous permettez

    Avant je déclare que j'ai travaillé sur le programme posé ici :

    http://www.roboticus.org/electroniqu...arouge-theorie

    pour le protocole c'est simple :

    la transmission débute par l'envoi d'un état haut pendant 1280 us

    arret de transmission pendant 640 us

    aprés si on désire anvoyer 1 on envoi une fréquence de 36 Khz pendant 640 us sinon (0) en envoi rien pendant 640 us

    aprés l'envoi d'un état haut de 640 us

    et on passe au bit suivant et ainsi de suite

    voila les programmes que j'ai fais sur Mikroc pro :

    pour l'émetteur :

    Code:
    int boucle;
    int cle;
    int cle_test;
    
    void PWM_start(){
    PWM1_Init(36000);
    PWM1_Set_Duty(127);
    PWM1_Start();
    delay_us(1280);
    PWM1_stop();
    }
    
    void PWM(){
    delay_us(640);
    PWM1_Init(36000);
    PWM1_Set_Duty(127);
    PWM1_Start();
    delay_us(640);
    PWM1_stop();
    }
    
    
    void interrupt() {
    
    
    tx1:
    PORTB.F6=1;
    delay_ms(2000);
    PORTB.F6=0;
    delay_ms(2000);
    cle=0X11;
    goto tx;
    
    //tx2:
    //cle=0X12;
    
    tx:
    PWM_start();
    delay_us(640);
    cle_test=cle &&0b10000000 ;
    if (cle_test==0X80){PWM();}
    else delay_us(1280);
    endtx:
    cle=cle<<1;
    PWM();
    boucle=boucle-1;
    if(boucle==0){delay_ms(40);goto fin;}
    else goto tx;
    fin:
    delay_us(1);
    INTCON.RBIF=0;
    INTCON.INTF=0;
    }
    void main() {TRISA=0;TRISB=1;
    while(1){
    
    boucle=8;
    INTCON=0X90;
    PORTB.F7=1;
    delay_ms(2000);
    PORTB.F7=0;
    delay_ms(2000);
    //asm SLEEP; // Plonger le pic dans un someil
    
    }
    }
    pour le récepteur:

    Code:
    unsigned char text0[4] ;
    int temp0 = 0;
    
    
    void Capteur_Temperature(){
    PORTB.F2=1;
    delay_ms(2000);
    PORTB.F2=0;
    delay_ms(2000);
    }
    
    void main() {int boucle;int cle;TRISB=1;
    while(1){
    main:
    
    if (PORTB.f0==1){goto main;}
    
    rrx:
    
    boucle=0X08;
    delay_us(1280);
    
    if (PORTB.f0==1){goto main;}
    
    bouclerx:
    
    if (PORTB.f0==0){goto bouclerx;}
    else
    delay_us(640);
    cle=cle<<1;
    if (PORTB.f0==0){goto rx1;}
    else cle=(cle &&0b11111110);
    
    rxend:
    
    delay_us(820);
    if (PORTB.f0==1){goto main;}
    else boucle=boucle-1;
    if (boucle!=0){goto bouclerx;}
    else goto analyse;
    rx1:
    cle=(cle ||0b00000001);
    goto rxend;
    
    analyse:
    
    if (cle==0X11){Capteur_Temperature();}
    }
    
    }
    pour la Led IR je l'ai connecté à la sortie du signal PWM et l'autre broche à une résistance de 200 ohm liée au 5V
    lorsque j'appui sur le bouton poussoir la led clignote ce qui montre que la programme d’interruption est exécuté mais je ne sais pas c'est déja en principe le programme est dans le bon sens ou non ?

    je vous remercie par avance.

    -----

  2. #2
    inoxxam

    Re : Programmation: Emetteur Recepteur IR

    Salut,
    Juste un conseil, les "goto" en C, ça s'évite comme la peste noire. Ça rend le code assez illisible dès qu'il devient un peu long.

  3. #3
    IHCAAMEL

    Re : Programmation: Emetteur Recepteur IR

    Citation Envoyé par inoxxam Voir le message
    Salut,
    Juste un conseil, les "goto" en C, ça s'évite comme la peste noire. Ça rend le code assez illisible dès qu'il devient un peu long.
    ça va poser de problème au niveau pratique ?

  4. #4
    inoxxam

    Re : Programmation: Emetteur Recepteur IR

    Indirectement, disons qu'un code plus lisible est aussi un code dans lequel tu voies mieux les problèmes. En lui-même, le GOTO n'est pas une source de bug, sinon il aurait été supprimé depuis longtemps. Il fait généralement partie des bonnes pratiques d'éviter son emploi, qui est rarement indispensable.

Sur le même thème :

Discussions similaires

  1. Emetteur-recepteur
    Par yuna06 dans le forum Électronique
    Réponses: 10
    Dernier message: 25/08/2009, 09h41
  2. émetteur récepteur ir
    Par cokiie dans le forum Électronique
    Réponses: 3
    Dernier message: 07/06/2009, 18h30
  3. Programmation processeur -> codeur pour émetteur/récepteur radio
    Par siteauludo dans le forum Électronique
    Réponses: 13
    Dernier message: 01/09/2008, 11h04
  4. Emetteur récepteur IR
    Par WhiteBird dans le forum Électronique
    Réponses: 3
    Dernier message: 21/11/2006, 19h20
  5. Emetteur et récepteur
    Par Baloooo dans le forum Électronique
    Réponses: 1
    Dernier message: 10/09/2005, 18h48
Découvrez nos comparatifs produits sur l'informatique et les technologies.