multiplexage
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 55

multiplexage



  1. #1
    invite1f39ae77

    multiplexage


    ------

    bonjour, j'utilise un afficheur 8digits de 7segments, chaque digit est allumé 2.048ms donc normalement on ne devrer pas voir de clignotement, hors on vois un clignotement, si j'allume chaque digite pendant 4.096ms le clignotement se voit un peut moin alors que normalement il devrait se voir plus. L'allumage des digits est controler par un PIC16f887 j'utilise un quartz de 8Mhz, le timer0 prescaler 16.

    -----

  2. #2
    invite5637435c

    Re : multiplexage

    Si tu allumes chaque digit plus longtemps c'est que le temps global est aussi plus long donc la frequence est plus faible, donc c'est normal.

  3. #3
    invite1f39ae77

    Re : multiplexage

    Non, j'ai du mal m'exprimer, si j'allume chaque digit 2.048ms on vois un clignotement (donc une certaine fréquence), hors si j'allume chaque digit 4.096ms on voit moin le clignotement, on dirai que la fréquence est plus grande (que celle des 2.048ms).

  4. #4
    invite5637435c

    Re : multiplexage

    Si tu ne veux pas voir le clignotement comme tu dis, il faut prendre 100Hz minimum soit 10ms au global donc 1.25ms pour chaque digit.
    Car en réalité chaque digit s'allume séquentiellement sur la période globale, ou autrement dit c'est un rapport cyclique 1/8eme sur 100Hz.

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

    Re : multiplexage

    J'ai aussi essayer en mettent le prescaler du timer0 sur 8 ce qui fait donc que chaque digit est allumer pendant 1.024ms, mais le clignotement ce voit toujours.

  7. #6
    invite5637435c

    Re : multiplexage

    Citation Envoyé par kevin8z Voir le message
    Non, j'ai du mal m'exprimer, si j'allume chaque digit 2.048ms on vois un clignotement (donc une certaine fréquence), hors si j'allume chaque digit 4.096ms on voit moin le clignotement, on dirai que la fréquence est plus grande (que celle des 2.048ms).
    AH ça change tout, ce n'est pas ce que j'avais compris.
    En principe ce n'est pas comme ça que l'on fait.
    On active chaque digit l'un après l'autre.

  8. #7
    invite5637435c

    Re : multiplexage

    Citation Envoyé par kevin8z Voir le message
    J'ai aussi essayer en mettent le prescaler du timer0 sur 8 ce qui fait donc que chaque digit est allumer pendant 1.024ms, mais le clignotement ce voit toujours.
    Fais voir ton code.

  9. #8
    invite1f39ae77

    Re : multiplexage

    oui, je l'ai allumes les uns aprés les autres, et il ont allumé chacun pendant 2.048ms

  10. #9
    invite1f39ae77

    Re : multiplexage

    Code:
    /*
    
     * horloge a tube VFD
     * PIC16F887
     * fréquence 8MHZ
     * RTC ds1307
     * capteur température ds18s20
     * interruption: prescaler par 16; interruption toute les  2.048ms
     
    */
    
     
    #define selectreg PORTA.RA2
    #define moin      PORTA.RA3
    #define plus      PORTA.RA4
    #define select    PORTA.RA5  // choix : (temperature); horloge; date
    
    char segments [13], seconde = 0, minute = 0, heure = 0, jour = 1, mois = 1, an = 12, selection = 0, disp = 1;
    
    /*******************************************************************************
                                   initialisation RTC
    *******************************************************************************/
    void initialiseRTC (){
    
       I2C1_Init (100000);     // initialisation a 100KHz de la vitesse d'horloge
    
       I2C1_Start();
    
       I2C1_Wr(0xD0);                // adresse DS1307
       I2C1_Wr(0);                   // début adresse 0
       I2C1_Wr(0);                   // quartz enable  et seconde = 0
       I2C1_Wr(0);                   // minute remise a 0
       I2C1_Wr(0);
       I2C1_Wr(1);
       I2C1_Wr(1);
       I2C1_Wr(1);
       I2C1_Wr(0x12);
       
       I2C1_Stop;
    }
    /*******************************************************************************
                                 Lecture RTC
    *******************************************************************************/
    void lectureRTC (){
    
      I2C1_Start();
      
      I2C1_Wr(0xD0);           // Adresse DS1307
      I2C1_Wr(0);                  // debut adresse 0
      I2C1_Repeated_Start();
      I2C1_Wr(0xD1);       // Adresse DS1307 pour lecture
      
      seconde = I2C1_Rd (1);
      minute = I2C1_Rd (1);
      heure = I2C1_Rd (1);
      I2C1_Rd (1);
      jour = I2C1_Rd(1);
      mois =I2C1_Rd(1);
      an =I2C1_Rd(0);
    
      I2C1_Stop();
    
    }//~
    
    /*******************************************************************************
                  Transforme le binaire codé décimal en décimal
    *******************************************************************************/
    void transformBDD (){
    
      seconde  =  ((seconde & 0xF0) >> 4) *10 + (seconde & 0x0F);
      minute   =  ((minute & 0xF0) >> 4) *10 + (minute& 0x0F);
      heure    =  ((heure & 0xF0) >> 4) *10 + (heure & 0x0F);
      jour     =  ((jour & 0xF0) >> 4) *10 + (jour & 0x0F);
      mois     =  ((mois & 0xF0) >> 4) *10 + (mois & 0x0F);
      an       =  ((an & 0xF0) >> 4) *10 + (an & 0x0F);
    }//~
    
    /*******************************************************************************
                                    écriture RTC
    *******************************************************************************/
    void ecritureRTC (){
    
     I2C1_Start();
    
     I2C1_Wr(0xD0);                // adresse DS1307
     I2C1_Wr(0);                   // début adresse 0
     I2C1_Wr(seconde);
     I2C1_Wr(minute);
     I2C1_Wr(heure);
     I2C1_Wr(0);
     I2C1_Wr(jour);
     I2C1_Wr(mois);
     I2C1_Wr(an);
    
     I2C1_Stop;
    }
    
    /*******************************************************************************
                        transform décimal en binaire codé décimal
    *******************************************************************************/
    void transformDBD (){
    
         seconde = (seconde / 10) << 4 +(seconde % 10);
         minute = (minute / 10) << 4 +(minute % 10);
         heure = (heure / 10) << 4 +(heure % 10);
         jour = (jour / 10) << 4 +(jour % 10);
         mois = (mois / 10) << 4 +(mois % 10);
         an = (an / 10) << 4 +(an % 10);
    }
    /*******************************************************************************
                               Affichage multipléxé
    *******************************************************************************/
    void affichage (){
    
        if (PORTD == 0x7F){
        
            PORTD = 0xFE;
        }
        else{
        
             PORTD = ~PORTD ;
             PORTD =  PORTD << 1 ;
             PORTD = ~PORTD ;
        }
    
        switch (PORTD){
    
               case 0xFE: disp = heure/10;
               break;
    
               case 0xFD: disp = heure%10;
               break;
    
               case 0xFB: disp = 10;
               break;
    
               case 0xF7: disp = minute/10;
               break;
    
               case 0xEF: disp = minute%10;
               break;
    
               case 0xDF: disp = 10;
               break;
    
               case 0xBF: disp = seconde/10;
               break;
    
               case 0x7F: disp = seconde%10;
               break;
    
        }
         
         PORTB = segments [disp];
    
    }
    /*******************************************************************************
                                        interruption
    *******************************************************************************/
    void interrupt (){
    
        if(selection == 0){ 
        transformBDD ();
        }
    
        affichage ();
             
        TMR0IF_BIT = 0;
        TMR0 = 0;
    }//~
    
    /*******************************************************************************
                                  Réglage date et heure
    *******************************************************************************/
    void reglage (){
    
        while(selection <=3){
           
           switch (selection) {
             
             case 1:             //réglage des secondes
             
                if(plus){
                   seconde++;
                   if(seconde > 59) seconde = 0;
                }
                if(moin){
                   seconde--;
                   if(seconde == 0) seconde = 59;
                }
    
             break;
             
             case 2:           //réglage des minutes
             
                if(plus){
                   minute++;
                   if(minute > 59) minute = 0;
                }
                if(moin){
                   minute--;
                   if(minute < 0) minute = 59;
                }
    
             break;
             
             case 3:          //réglage des heures
             
                if(plus){
                   heure++;
                   if(heure > 23) heure = 0;
                }
                if(moin){
                   heure--;
                   if(heure < 0) heure = 23;
                }
    
             break;
             }
             if(selectreg){ selection++;}              // on reste dans la boucle tant que selectreg n'est pas relaché
             while(plus || moin || selectreg){}        // on reste dans la boucle tant que le BP n'est pas relaché
        }
        
        transformDBD ();
        ecritureRTC ();
        selection = 0; // On re-initialise la variable selection
    }//~
    
    /*******************************************************************************
                               Programme principal
    *******************************************************************************/
    void main() {
    
     initialiseRTC ();
    
         segments [0] = 0x80;
         segments [1] = 0xF2;
         segments [2] = 0x48;
         segments [3] = 0x60;
         segments [4] = 0x32;
         segments [5] = 0x24;
         segments [6] = 0x04;
         segments [7] = 0xF0;
         segments [8] = 0x00;
         segments [9] = 0x20;
         segments [10] = 0x7E; // -
         segments [11] = 0x38; // °
         segments [12] = 0x8C; // C
    
    TRISA = 0xFF; //entrée
    PORTA = 0x00;
    TRISB = 0x01; //RB0 en entrée
    PORTB = 0x00; // port b : segments
    TRISC = 0xFF; //entrée
    PORTC = 0x00;
    TRISD = 0x00;
    PORTD = 0x7F; // port d : digits
    
    ANSEL  = 0;   // Configure  pins en numérique
    ANSELH = 0;
    
    OPTION_REG = 0x83;
    INTCON = 0xA0;
    TMR0 = 0;
    
    
    
       while (1) {
            
            lectureRTC();
    
    
            if(selectreg){    //partie concernant le reglage de l'heure et de la date
               reglage ();
            }
       }
    }//~
    /*******************************************************************************
                                      FIN
    *******************************************************************************/

  11. #10
    invite5637435c

    Re : multiplexage

    rassure moi j'espère que ce ne sont pas des tubes tes digits?

  12. #11
    invite1f39ae77

    Re : multiplexage

    si c'est un tuve VFD 8digits 7segments.

  13. #12
    invite5637435c

    Re : multiplexage

    Déjà un truc qui ne va pas c'est ta routine d'interruption.
    Il ne faut pas traiter les fonctions de conversion ni d'affichage dedans.

  14. #13
    invite1f39ae77

    Re : multiplexage

    Je vais donc modifier ma routine d'interruption. Pourquoi m'a tu dis: "rassure moi j'espère que ce ne sont pas des tubes tes digits? "? qu'elle est le rapport avec le multiplexage?

  15. #14
    invite5637435c

    Re : multiplexage

    Citation Envoyé par kevin8z Voir le message
    si c'est un tuve VFD 8digits 7segments.
    Pour les VFD mieux vaut ne pas dépasser le 1/100eme de seconde.
    Ton soucis est bien dans la gestion du multiplexage.

  16. #15
    invite1f39ae77

    Re : multiplexage

    Merci bien, je vais modifier cette routine d'interruption et voir ce que ca donne

  17. #16
    invite1f39ae77

    Re : multiplexage

    Dans mon interruption je n'est plus de fonction de conversion n'y d'affichage, est le clignotement est toujours présent.

  18. #17
    invite5637435c

    Re : multiplexage

    Oui c'est possible, comment voulez-vous que je devine vos modifications?

  19. #18
    invite5637435c

    Re : multiplexage

    Faites voir

  20. #19
    invite1f39ae77

    Re : multiplexage

    voici la modification apporté dans la routine d'interruption:
    Code:
    /*******************************************************************************
                                        interruption
    *******************************************************************************/
    void interrupt (){
    
        i = 1;
             
        TMR0IF_BIT = 0;
        TMR0 = 0;
    }//~
    et dans le programme principale :
    Code:
    /*******************************************************************************
                               Programme principal
    *******************************************************************************/
    void main() {
    
     initialiseRTC ();
    
         segments [0] = 0x80;
         segments [1] = 0xF2;
         segments [2] = 0x48;
         segments [3] = 0x60;
         segments [4] = 0x32;
         segments [5] = 0x24;
         segments [6] = 0x04;
         segments [7] = 0xF0;
         segments [8] = 0x00;
         segments [9] = 0x20;
         segments [10] = 0x7E; // -
         segments [11] = 0x38; // °
         segments [12] = 0x8C; // C
    
    TRISA = 0xFF; //entrée
    PORTA = 0x00;
    TRISB = 0x01; //RB0 en entrée
    PORTB = 0x00; // port b : segments
    TRISC = 0xFF; //entrée
    PORTC = 0x00;
    TRISD = 0x00;
    PORTD = 0x7F; // port d : digits
    
    ANSEL  = 0;   // Configure  pins en numérique
    ANSELH = 0;
    
    OPTION_REG = 0x80;
    INTCON = 0xA0;
    TMR0 = 0;
    
    
    
       while (1) {
            
            lectureRTC();
    
            if(i){
            if(selection == 0){
            transformBDD ();
            }
    
            affichage ();
            i = 0 ;
            }
            if(selectreg){    //partie concernant le reglage de l'heure et de la date
               reglage ();
            }
       }
    }//~
    /*******************************************************************************
                                      FIN
    *******************************************************************************/

  21. #20
    invite5637435c

    Re : multiplexage

    Ben oui c'est normal.

    Tu rentres comment dans la routine d'interruption?

    Code:
    void interrupt(){
    
    if(T0IF)
      {
      T0IF =0;
      .......
      }
    }
    dans les parenthèses tu mets une variable (volatile) à 1 qui sera traitée dans le main().
    Seront traités le formattage et l'affichage.
    Une fois fait tu remets la variable à 0.
    Cette variable sera globale, déclarée en tête de programme du genre:

    Code:
    volatile char i=0;

  22. #21
    invite1f39ae77

    Re : multiplexage

    mais normalement je n'est pas besoin de tester le bit TOIF, puisque si on rentre dans void interrupt c'est que l'interruption viens de se produire

  23. #22
    invite1f39ae77

    Re : multiplexage

    j'ai fait comme vous m'avez dit:
    Code:
    void interrupt (){
    
        if (TMR0IF_BIT){
        i = 1;
        }
        TMR0IF_BIT = 0;
        TMR0 = 0;
    
    }//~
    Mais le clignotement persiste toujours

    PS: je n'avais pas vue votre 2iéme code : volatile char je vais essayer

  24. #23
    invitefaaca50b

    Re : multiplexage

    On peut aussi mettre un verrou a chaque afficheur, et mettre a jour chaque verrou chacun a son tour, ce qui fait qu'en fait, les tubes sont eclairés en permanence...
    Au lieu de commander chaque tube, on envoit la valeur de l'afficheur dans le bus, on deverouille le verrou correspondant a l'afficheur a mettre a jour, et on le reverrouille avant de passer au suivant....
    Ca fait juste 8 verrous 8bits a rajouter... Mais on a la luminosité maximum, et on peut meme baisser la frequence de mise a jour a moins de 50Hz sans plus jamais avoir de scintillement...

  25. #24
    invite5637435c

    Re : multiplexage

    Vous déclarez INTCON = 0xA0;

    Donc INTCON=0b10100000 donc PEIE n'est pas activé...

  26. #25
    invite5637435c

    Re : multiplexage

    Citation Envoyé par kevin8z Voir le message
    j'ai fait comme vous m'avez dit:
    Code:
    void interrupt (){
    
        if (TMR0IF_BIT){
        i = 1;
        }
        TMR0IF_BIT = 0;
        TMR0 = 0;
    
    }//~
    Mais le clignotement persiste toujours

    PS: je n'avais pas vue votre 2iéme code : volatile char je vais essayer
    Il faut mettre TMR0IF_BIT à 0 aussitôt dans le if c'est plus propre, si vous avez un jour d'autres interruptions à détecter vous risquez de l'oublier à l'extérieur et il sera remis à 0 sans prévenir du coup vous n'accèderez jamais à votre condition if(TMR0IF_BIT)

  27. #26
    invite1f39ae77

    Re : multiplexage

    FRANK-026: je ne comprend pas votre explication sur les verrous, il est impossible que l'eclairage des digits soit au maximum puisque il sont commander 1/8 du temps.
    HULK28: TMR0IF_BIT je l'ai rajouter dans le IF juste aprés avoir poster le code. En mettent le bit PEIE à 1 (donc activer) cela ne change rien.

  28. #27
    invite5637435c

    Re : multiplexage

    Reposte tout le code que l'on voit où tu en es.

  29. #28
    invite1f39ae77

    Re : multiplexage

    Voilà le nouveau code
    Code:
     * horloge a tube VFD
     * PIC16F887
     * fréquence 8MHZ
     * RTC ds1307
     * capteur température ds18s20
     * interruption: prescaler par 16; interruption toute les  2.048ms
     
    */
    
     
    #define selectreg PORTA.RA2
    #define moin      PORTA.RA3
    #define plus      PORTA.RA4
    #define select    PORTA.RA5  // choix : (temperature); horloge; date
    
    char segments [13], seconde = 0, minute = 0, heure = 0, jour = 1, mois = 1, an = 12, selection = 0, disp = 1;
    volatile char i = 0;
    
    
    /*******************************************************************************
                                   initialisation RTC
    *******************************************************************************/
    void initialiseRTC (){
    
       I2C1_Init (100000);     // initialisation a 100KHz de la vitesse d'horloge
    
       I2C1_Start();
    
       I2C1_Wr(0xD0);                // adresse DS1307
       I2C1_Wr(0);                   // début adresse 0
       I2C1_Wr(0);                   // quartz enable  et seconde = 0
       I2C1_Wr(0);                   // minute remise a 0
       I2C1_Wr(0);
       I2C1_Wr(1);
       I2C1_Wr(1);
       I2C1_Wr(1);
       I2C1_Wr(0x12);
       
       I2C1_Stop;
    }
    /*******************************************************************************
                                 Lecture RTC
    *******************************************************************************/
    void lectureRTC (){
    
      I2C1_Start();
      
      I2C1_Wr(0xD0);           // Adresse DS1307
      I2C1_Wr(0);                  // debut adresse 0
      I2C1_Repeated_Start();
      I2C1_Wr(0xD1);       // Adresse DS1307 pour lecture
      
      seconde = I2C1_Rd (1);
      minute = I2C1_Rd (1);
      heure = I2C1_Rd (1);
      I2C1_Rd (1);
      jour = I2C1_Rd(1);
      mois =I2C1_Rd(1);
      an =I2C1_Rd(0);
    
      I2C1_Stop();
    
    }//~
    
    /*******************************************************************************
                  Transforme le binaire codé décimal en décimal
    *******************************************************************************/
    void transformBDD (){
    
      seconde  =  ((seconde & 0xF0) >> 4) *10 + (seconde & 0x0F);
      minute   =  ((minute & 0xF0) >> 4) *10 + (minute& 0x0F);
      heure    =  ((heure & 0xF0) >> 4) *10 + (heure & 0x0F);
      jour     =  ((jour & 0xF0) >> 4) *10 + (jour & 0x0F);
      mois     =  ((mois & 0xF0) >> 4) *10 + (mois & 0x0F);
      an       =  ((an & 0xF0) >> 4) *10 + (an & 0x0F);
    }//~
    
    /*******************************************************************************
                                    écriture RTC
    *******************************************************************************/
    void ecritureRTC (){
    
     I2C1_Start();
    
     I2C1_Wr(0xD0);                // adresse DS1307
     I2C1_Wr(0);                   // début adresse 0
     I2C1_Wr(seconde);
     I2C1_Wr(minute);
     I2C1_Wr(heure);
     I2C1_Wr(0);
     I2C1_Wr(jour);
     I2C1_Wr(mois);
     I2C1_Wr(an);
    
     I2C1_Stop;
    }
    
    /*******************************************************************************
                        transform décimal en binaire codé décimal
    *******************************************************************************/
    void transformDBD (){
    
         seconde = (seconde / 10) << 4 +(seconde % 10);
         minute = (minute / 10) << 4 +(minute % 10);
         heure = (heure / 10) << 4 +(heure % 10);
         jour = (jour / 10) << 4 +(jour % 10);
         mois = (mois / 10) << 4 +(mois % 10);
         an = (an / 10) << 4 +(an % 10);
    }
    /*******************************************************************************
                               Affichage multipléxé
    *******************************************************************************/
    void affichage (){
    
        if (PORTD == 0x7F){
        
            PORTD = 0xFE;
        }
        else{
        
             PORTD = ~PORTD ;
             PORTD =  PORTD << 1 ;
             PORTD = ~PORTD ;
        }
    
        switch (PORTD){
    
               case 0xFE: disp = heure/10;
               break;
    
               case 0xFD: disp = heure%10;
               break;
    
               case 0xFB: disp = 10;
               break;
    
               case 0xF7: disp = minute/10;
               break;
    
               case 0xEF: disp = minute%10;
               break;
    
               case 0xDF: disp = 10;
               break;
    
               case 0xBF: disp = seconde/10;
               break;
    
               case 0x7F: disp = seconde%10;
               break;
    
        }
         
         PORTB = segments [disp];
    
    }
    /*******************************************************************************
                                        interruption
    *******************************************************************************/
    void interrupt (){
    
        if (TMR0IF_BIT){
        TMR0IF_BIT = 0;
        i = 1;
        }
        TMR0 = 0;
    
    }//~
    
    /*******************************************************************************
                                  Réglage date et heure
    *******************************************************************************/
    void reglage (){
    
        while(selection <=3){
           
           switch (selection) {
             
             case 1:             //réglage des secondes
             
                if(plus){
                   seconde++;
                   if(seconde > 59) seconde = 0;
                }
                if(moin){
                   seconde--;
                   if(seconde == 0) seconde = 59;
                }
    
             break;
             
             case 2:           //réglage des minutes
             
                if(plus){
                   minute++;
                   if(minute > 59) minute = 0;
                }
                if(moin){
                   minute--;
                   if(minute < 0) minute = 59;
                }
    
             break;
             
             case 3:          //réglage des heures
             
                if(plus){
                   heure++;
                   if(heure > 23) heure = 0;
                }
                if(moin){
                   heure--;
                   if(heure < 0) heure = 23;
                }
    
             break;
             }
             if(selectreg){ selection++;}              // on reste dans la boucle tant que selectreg n'est pas relaché
             while(plus || moin || selectreg){}        // on reste dans la boucle tant que le BP n'est pas relaché
        }
        
        transformDBD ();
        ecritureRTC ();
        selection = 0; // On re-initialise la variable selection
    }//~
    
    /*******************************************************************************
                               Programme principal
    *******************************************************************************/
    void main() {
    
     initialiseRTC ();
    
         segments [0] = 0x80;
         segments [1] = 0xF2;
         segments [2] = 0x48;
         segments [3] = 0x60;
         segments [4] = 0x32;
         segments [5] = 0x24;
         segments [6] = 0x04;
         segments [7] = 0xF0;
         segments [8] = 0x00;
         segments [9] = 0x20;
         segments [10] = 0x7E; // -
         segments [11] = 0x38; // °
         segments [12] = 0x8C; // C
    
    TRISA = 0xFF; //entrée
    PORTA = 0x00;
    TRISB = 0x01; //RB0 en entrée
    PORTB = 0x00; // port b : segments
    TRISC = 0xFF; //entrée
    PORTC = 0x00;
    TRISD = 0x00;
    PORTD = 0x7F; // port d : digits
    
    ANSEL  = 0;   // Configure  pins en numérique
    ANSELH = 0;
    
    OPTION_REG = 0x83;
    INTCON = 0xE0;
    TMR0 = 0;
    
    
    
       while (1) {
            
            lectureRTC();
    
            if(i){
                  if(selection == 0){
                  transformBDD ();
                  }
    
                  affichage ();
                  i = 0 ;
            }
            if(selectreg){    //partie concernant le reglage de l'heure et de la date
               reglage ();
            }
       }
    }//~
    /*******************************************************************************
                                      FIN
    *******************************************************************************/

  30. #29
    invite5637435c

    Re : multiplexage

    OUI encore normal

    TMR0IF_BIT ne signifie rien pour ton compilateur.

    Tu peux ajouter cela en tout début de programme:
    Code:
    #define TMR0IF_BIT   INTCON.F2

  31. #30
    invite5637435c

    Re : multiplexage

    Supprime moi aussi ce TMR0=0 dans l'interruption, il n'a rien à faire là, le timer continu de s'incrémenter pendant ce temps il n'est pas question de le remetrre à 0 comme ça.

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Multiplexage affichage
    Par invite7dd217a5 dans le forum Électronique
    Réponses: 5
    Dernier message: 20/11/2010, 18h23
  2. multiplexage
    Par invite34cb80ff dans le forum Électronique
    Réponses: 2
    Dernier message: 15/02/2010, 14h59
  3. Multiplexage temporel
    Par inviteb2e92e68 dans le forum Physique
    Réponses: 2
    Dernier message: 28/11/2009, 17h12
  4. Multiplexage...
    Par invite40e1dfdf dans le forum Électronique
    Réponses: 5
    Dernier message: 11/08/2009, 22h15
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...