[Outils/Fab/Comp] Interfacer une télécommande IR - Page 3
Répondre à la discussion
Page 3 sur 3 PremièrePremière 3
Affichage des résultats 61 à 69 sur 69

Interfacer une télécommande IR



  1. #61
    biloux911

    Re : Interfacer une télécommande IR


    ------

    Développe un peu tes idées

    -----

  2. #62
    davidif

    Re : Interfacer une télécommande IR

    Citation Envoyé par biloux911 Voir le message
    Développe un peu tes idées
    En fait, pour envoyé mes trames avec le respect des temps, on ma conseillé de prendre un timer (dans mon cas timer4 dispo) avec son interruption pour envoyer les trames et tu me propose d'interrompe les autres interruptions le temps de générer les trames, ce qui serait équivalent non ? seulement pour le moment je n'ai pas encore identifier le code pour ce faire.

    donc je sais pas trop ce qui est conseillé, maintenant j'ai bien activé mon timer4 mais j'ai du mal à implémenter son interruption, car quand je l'active, ma pile TCP/IP ne fonctionne plus alors que celle-ci n'utilise pas le timer4, je comprend rien là.

    J'utilise mplab x IDE sous harmony, il me génère une partie du code en cochant des options , comme quand je sélectionne les interruption pour les timers, j'ai donc garder le code correspondant au timer4 et son interruption.

    initialise mon timer4 dans system_init :

    Code:
        T4CON = 0x0; // Stop the timer and clear the control register,
        TMR4 = 0x0; // Clear the timer register
        PR4 = 0x0FFF; // Load the period register
        T4CONbits.TCKPS=0;
    
        IPC4SET = 0x00000001; // Set priority level = 3
       IPC4SET = 0x00000000; // Set subpriority level = 1
        IFS0bits.T4IF = 0;
        IEC0bits.T4IE = 1; 
        T4CONSET = 0x8000; // Start the timer
    puis il me génère cette fonction dans system_interrupt.c

    Code:
    void IntHandlerDrvTmrInstance3(void)
    
    {
    
        DRV_TMR_Tasks_ISR(sysObj.drvTmr3);
        micro++;
    
    }
    et dans system_interrupt_a.s

    Code:
    /* TMR Instance 3 Interrupt */
    
       .extern  IntHandlerDrvTmrInstance3
    
       .section	.vector_16,code, keep
       .equ     __vector_dispatch_16, IntVectorDrvTmrInstance3
       .global  __vector_dispatch_16
       .set     nomicromips
       .set     noreorder
       .set     nomips16
       .set     noat
       .ent  IntVectorDrvTmrInstance3
    
    IntVectorDrvTmrInstance3:
        la    $26,  _IntHandlerDrvTmrInstance3         
        jr    $26
        nop
    	.end	IntVectorDrvTmrInstance3
    
       .section	.DrvTmrInstance3_vector_text, code, keep
       .set     nomicromips
       .set     noreorder
       .set     nomips16
       .set     noat
       .ent  _IntHandlerDrvTmrInstance3
    
    _IntHandlerDrvTmrInstance3:
        portSAVE_CONTEXT
        la    s6,  IntHandlerDrvTmrInstance3
        jalr  s6
        nop
        portRESTORE_CONTEXT
        .end	_IntHandlerDrvTmrInstance3

    seulement , ma compile ne passe pas , car ces erreur


    build/pic32mx_eth_sk+ioexp+11n+freer tos/production/_ext/1922377806/system_interrupt.o: In function `IntHandlerDrvTmrInstance3':
    c:/users/tecwave/disque 1t/etude/hardware/programme pic32/wifi/n v1.2/apps/tcpip/web_server_nvm_mpfs/firmware/src/system_config/pic32mx_eth_sk+ioexp+11n+freer tos/system_interrupt.c:83: undefined reference to `DRV_TMR_Tasks_ISR'
    collect2.exe: error: ld returned 255 exit status
    make[2]: *** [dist/pic32mx_eth_sk+ioexp+11n+freer tos/production/pic32_eth_wifi_web_server.X.pr oduction.hex] Error 255
    make[1]: *** [.build-conf] Error 2
    make: *** [.build-impl] Error 2

    BUILD FAILED (exit value 2, total time: 2s)

  3. #63
    davidif

    Re : Interfacer une télécommande IR

    quand je passe

    #define DRV_TMR_INTERRUPT_MODE de false à true

    ma compilation passe, mais ma pile tcp/ip ne fonctionne plus

    Code:
    void IntHandlerDrvTmrInstance3(void)
    
    {
    
        DRV_TMR_Tasks_ISR(sysObj.drvTmr3);
        IFS0bits.T4IF = 0;
        micro++;
    
    }

  4. #64
    davidif

    Re : Interfacer une télécommande IR

    En fait, c'est pas tant ma pile tcp/ip qui ne fonctionne plus mais tout le fonctionnement du CPU je dirai , seul l'interruption du timer4 tourne

  5. #65
    biloux911

    Re : Interfacer une télécommande IR

    Citation Envoyé par davidif Voir le message
    En fait, pour envoyer mes trames avec le respect des temps, on m'a conseillé de prendre un timer (dans mon cas timer4 dispo) avec son interruption pour envoyer les trames et tu me proposes d'interrompre les autres interruptions le temps de générer les trames, ce qui serait équivalent non ?
    Ben à mon avis non ! Une interruption peut interrompre du code joué dans le cadre d'une routine d'interruption. Voila pourquoi il te faut bloquer toutes les interruptions lorsque tu envoies les trames. Ensuite sur le besoin ou non d'utiliser un timer pour générer les trames ça dépend de la précision temporelle requise par rapport à ta fréquence de micro. Mais si tu as réussi à reconnaître des morceaux de trames avec tes boucles while c'est que l'utilisation du timer n'est peut-être pas obligatoire.

    Pour le reste, je n'ai pas les compétences pour t'aider...

  6. #66
    davidif

    Re : Interfacer une télécommande IR

    Bon bah, voila

    ce que je sors du micro, avec les bonnes tempos, faut que je vérifie maintenant en réception.

    mon code :

    Code:
    uint8_t i;
    
    uint16_t trente_mn[67]={9120,4500,540,600,540,1720,540,600,540,600,
                            540,600,540,600,540,600,540,600,540,1720,
                            540,600,540,1720,540,1720,540,1720,540,1720,
                            540,1720,540,1740,540,1720,540,600,540,1700,
                            560,600,540,600,540,600,520,620,520,620,
                            520,600,540,1720,540,600,540,1720,540,1720,
                            540,1740,520,1720,540,1740,540};
    
    uint16_t etat[67]={0,1,0,1,0,1,0,1,0,1,
                       0,1,0,1,0,1,0,1,0,1,
                       0,1,0,1,0,1,0,1,0,1,
                       0,1,0,1,0,1,0,1,0,1,
                       0,1,0,1,0,1,0,1,0,1,
                       0,1,0,1,0,1,0,1,0,1,
                       0,1,0,1,0,1,0};
    
    
    
                                asm volatile("di");    
                                        for(i=0;i<67;i++)
                                        {
                                
                                            duree=trente_mn[i];
    
                                            duree=((duree*6));
     
                                            while(duree)
                                            {
                                            duree--;
                                            tempo_micro++;
                                            if (tempo_micro==81) {tempo_micro=0;micro=~micro;}
                                            IR=etat[i]||micro; 
                                            }    
                                        }
                               
                                Diffuseur_val=0;
                                IR=1;  // d10 (RC3) 
                                asm volatile("ei");

    Nom : TEK00000.jpg
Affichages : 51
Taille : 87,9 Ko
    Dernière modification par davidif ; 14/07/2016 à 15h39.

  7. #67
    davidif

    Re : Interfacer une télécommande IR

    petite question, afin d'y mettre une led infra-rouge emetrice, que pourrais-je prendre entre les led translucide, noir, transparente, 35-L, bleu translucide, quel sont les plus interresante selon vous ?
    Celle utilisé sur la télécommande est une transparente.

  8. #68
    davidif

    Re : Interfacer une télécommande IR

    Merci de votre aide, j'ai pu tester mes temps sur l'appareil à commander et ça fonctionne bien.
    J'ai juste mis les temps de la trame et nickel pas besoin d'optimiser les temps par rapport à la boucle, ce que je pensai devoir faire.

  9. #69
    biloux911

    Re : Interfacer une télécommande IR

    good job

Page 3 sur 3 PremièrePremière 3

Discussions similaires

  1. [RF/Radioelec] Interfacer télécommande
    Par pi1148 dans le forum Électronique
    Réponses: 7
    Dernier message: 09/03/2016, 14h53
  2. Interfacer un GPS!
    Par invite6ab74433 dans le forum Électronique
    Réponses: 2
    Dernier message: 04/07/2009, 13h09
  3. Interfacer une tension de sortie d'un automate
    Par invitedd558ae9 dans le forum Électronique
    Réponses: 3
    Dernier message: 30/09/2008, 11h40
  4. Interfacer un CNA avec un FPGA
    Par invite1237d672 dans le forum Électronique
    Réponses: 4
    Dernier message: 14/04/2008, 14h43
  5. Interfacer les microcontrôleurs
    Par invite84ceb4be dans le forum Électronique
    Réponses: 1
    Dernier message: 22/06/2007, 20h03
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...