[Programmation] Pic16f1619
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 42

Pic16f1619



  1. #1
    invite0f7f4bae

    Pic16f1619


    ------

    Bonjour,

    Je voulais savoir si l'un d'entre vous avait déjà travaillé sur un projet d'interface LCD avec un microcontrolleur PIC16F1619 à l'aide d'une communication I2C et pourrait m'aider car je n'arrive pas à le programmer..

    Merci d'avance,

    Coco

    -----

  2. #2
    antek

    Re : Pic16f1619

    - un lien vers la doc PIC et LCD
    - un schéma du montage

    Avec ça quelqu'un devrait pouvoir t'aider.

  3. #3
    invite0f7f4bae

    Re : Pic16f1619

    Bonjour,

    Voici le lien vers la datasheet du PIC16F1619 : http://ww1.microchip.com/downloads/e.../40001770C.pdf

    Le lien vers le LCD MIDAS Displays MC21605B6W-SPR-V2: http://www.farnell.com/datasheets/20...714.1499349819

    De plus je dois effectuer la compilation avec MPLABX XC8

    Cordialement,

    Coco

  4. #4
    antek

    Re : Pic16f1619

    Et quel est le problème ?
    Tu sais utiliser un µC, une liaison I2C, l'afficheur et le langage C ?

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

    Re : Pic16f1619

    Je sais pas comment m'y prendre pour la programmation. Je me suis aidé de sites tels que electrosome mais rien ne s'affiche sur mon LCD.
    Mon pb vient de la partie programmation, le code C n'est pas mon fort..

    C'est pourquoi je voulais voir si qqn avait déjà effectuer ce genre de projet.

  7. #6
    antek

    Re : Pic16f1619

    Citation Envoyé par Cox59 Voir le message
    Mon pb vient de la partie programmation, le code C n'est pas mon fort..
    C'est difficile de faire un cours sur un forum.
    Microchip fournit des bouts de programme pour un peu tout, tu as été voir ?

    De toute façon en C je sais pas faire . . .

  8. #7
    paulfjujo

    Re : Pic16f1619

    Bonjour,


    .. projet d'interface LCD avec un microcontrolleur PIC16F1619 à l'aide d'une communication I2C ....
    à priori , ton LCD est un classique LCD type 1602 mode paralelle en mode 8 ou 4 bits.
    Si tu veux le piloter via un bus I2C
    il faut intercaler un circuit PCF8754 ( ou equivalent).

    montre ton code ...

  9. #8
    antek

    Re : Pic16f1619

    Citation Envoyé par paulfjujo Voir le message
    à priori , ton LCD est un classique LCD type 1602 mode paralelle en mode 8 ou 4 bits.
    Si tu veux le piloter via un bus I2C
    il faut intercaler un circuit PCF8754 ( ou equivalent).
    Son afficheur existe aussi en I2C et SPI, mais on n'a pas le code complet du produit.

  10. #9
    mag1

    Re : Pic16f1619

    Bonjour,

    C'est probablement un LCD 1602 standard HD44780.
    Pour l'utiliser en I2C, il faut un petit driver PCF8574, on en trouve à 1 euro sur eBay.

    La programmation revint à utiliser le LCD en parallèle 4bits. Voici une page sur ces drivers I2C, c'est pas un pic, mais un picaxe, le principe sera le même:
    http://electromag1.wifeo.com/lcd-i2c...ur-pcf8574.php

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  11. #10
    invite0f7f4bae

    Re : Pic16f1619

    Bonjour,

    Merci de vos réponses. Comment adapter le code du picaxe sur le pic16F ?

  12. #11
    antek

    Re : Pic16f1619

    Citation Envoyé par Cox59 Voir le message
    Merci de vos réponses. Comment adapter le code du picaxe sur le pic16F ?
    On peut pas, il faut un µC PICAXE (avec interprêteur intégré).
    Mais tu peux utiliser la logique de mise en œuvre pour en faire du C.

  13. #12
    mag1

    Re : Pic16f1619

    Citation Envoyé par Cox59 Voir le message
    Bonjour,

    Merci de vos réponses. Comment adapter le code du picaxe sur le pic16F ?
    Je pense quand même qu'avec un compilateur basic, quelques neurones et un pickit3 on doit s'en sortir.

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  14. #13
    chimere322

    Re : Pic16f1619

    Bonjour,

    On peut pas, il faut un µC PICAXE (avec interprêteur intégré).
    Mais tu peux utiliser la logique de mise en œuvre pour en faire du C.
    Si on peut.
    Je pense quand même qu'avec un compilateur basic, quelques neurones et un pickit3 on doit s'en sortir.
    Avec mikroBasic pour pic et quelques adaptation par rapport à picaxe c'est possible. Après tout, picaxe est à base de pic.

    On arrive bien a transposer du code arduino en picaxe pour tous les capteurs et lcd et autres machins.
    Dernière modification par chimere322 ; 16/08/2017 à 17h29.
    Bien cordialement Jean Claude.

  15. #14
    invite0f7f4bae

    Re : Pic16f1619

    Si quelqu'un a déjà fait ce type de projet directement sur MPLABX XC8 avec une carte Curiosity avec un micro type PIC16F1619 je suis prenneur ! Car j'ai un matériel imposé..

    Je vous remercie,

    Coco

    PS : Voici mon code pour le moment mais je sais qu'il faut l'adapter..
    Fichiers attachés Fichiers attachés

  16. #15
    chimere322

    Re : Pic16f1619

    Car j'ai un matériel imposé..
    Et c'est maintenant que tu le dis. je laisse tomber.
    Bien cordialement Jean Claude.

  17. #16
    invite0f7f4bae

    Re : Pic16f1619

    Et c'est maintenant que tu le dis. je laisse tomber.
    Bonjour Chimere322,

    Ne t'enerves pas j'ai pas précisé au départ mais pas besoin de réagir de la sorte...

    Pensez-vous que je peux m'appuyer sur : https://electrosome.com/lcd-pic-mplab-xc8/ et https://electrosome.com/i2c-pic-micr...ler-mplab-xc8/ mais après je sais pas comment mettre le code en commun..

    Cordialement,

    Coco

  18. #17
    antek

    Re : Pic16f1619

    Le deuxième, oui, pour I2C.
    Le premier utilise un afficheur à communication parallèle.

  19. #18
    invite0f7f4bae

    Re : Pic16f1619

    Le premier utilise un afficheur à communication parallèle.
    Tout comme celui que j'utilise non ? Après j'ai déjà testé mais le LCD n'affiche rien.. La liaison I2C ne s'effectue pas, je ne sais pas comment mettre les codes en commun pour afficher des caractères sur mon LCD.. Peut-être faut-il que j'utilise le PCF qu'on m'a recommandé car eux l'utilisent.

  20. #19
    antek

    Re : Pic16f1619

    Citation Envoyé par Cox59 Voir le message
    Tout comme celui que j'utilise non ? Après j'ai déjà testé mais le LCD n'affiche rien.. La liaison I2C ne s'effectue pas . . .
    Là ça devient un dialogue de sourds . . .
    Tu n'as pas dit #1 que le tien communique en I2C ?

  21. #20
    paulfjujo

    Re : Pic16f1619

    Ton LCD est bien en I2C ?
    pourqoui faudrait -il alors rajputer un PCF ..
    donne la reference complete du module LCD ..

    Attention aussi à l'adresse I2C de ce LCD ( ou de l'interface I2C intégré)
    Si il y a un PCF8754 .. 8 adresses possibles via les 3 pins A0 A1 A2

  22. #21
    invite0f7f4bae

    Re : Pic16f1619

    Mon LCD est le suivant : MC21605B6WK-GPTLY-V2 > http://fr.farnell.com/midas/mc21605b...rance%2Fsearch

    L'interface n'est pas précisé mais il fait partie de la famille des LCD suivante : MC21605B6WK-GPTLY > http://fr.farnell.com/midas/mc21605b...5mm/dp/2063138

    Donc il a un interface parallèle. J'utilisais une deuxième carte curiosity pour faire la conversion en i2c mais je pense qu'avec le PCF se sera plus simple.

  23. #22
    mag1

    Re : Pic16f1619

    Citation Envoyé par paulfjujo Voir le message
    Ton LCD est bien en I2C ?
    pourqoui faudrait -il alors rajputer un PCF ..
    donne la reference complete du module LCD ..
    Bonjour,

    Le lien est en #3

    C'est un LCD 1602 standard, sans rétroéclairage, avec table de caractères chinois, standard quoi...
    J'ai pas lu le total, mais probablement compatible HD44780.
    Donc pour l'I2C, on lui met un PCF, et on programme en parallèle 4 bits..

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  24. #23
    invite0f7f4bae

    Re : Pic16f1619

    Le lien est en #3
    Petite modification dans mon post précédent le LCD du #3 est pour un autre projet je m'excuse, il faut prendre celui du post précédent !

    Ok donc j'achète un PCF et je peux m'aligner sur les codes electrosome ?

    Coco

    Mon LCD est le suivant : MC21605B6WK-GPTLY-V2 > http://fr.farnell.com/midas/mc21605b...rance%2Fsearch

    L'interface n'est pas précisé mais il fait partie de la famille des LCD suivante : MC21605B6WK-GPTLY > http://fr.farnell.com/midas/mc21605b...5mm/dp/2063138

  25. #24
    mag1

    Re : Pic16f1619

    Citation Envoyé par Cox59 Voir le message

    Donc il a un interface parallèle. J'utilisais une deuxième carte curiosity pour faire la conversion en i2c mais je pense qu'avec le PCF se sera plus simple.
    Et moins cher...

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  26. #25
    adipie

    Re : Pic16f1619


  27. #26
    mag1

    Re : Pic16f1619

    En fait, il y a deux actions distinctes:

    1- Savoir programmer un LCD en mode 4 bits: Initialisation, découpage en poids fort, poids faible, envoi des octets...sans I2C
    2- Utiliser l'I2C pour envoyer les octets au LCD via le PCF.

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  28. #27
    invite0f7f4bae

    Re : Pic16f1619

    Merci pour vos réponses !

    1- Savoir programmer un LCD en mode 4 bits: Initialisation, découpage en poids fort, poids faible, envoi des octets...sans I2C
    2- Utiliser l'I2C pour envoyer les octets au LCD via le PCF.
    Oui il faut savoir programmer pour concilier les deux.. Je n'ai trouvé que des sites avec des codes qui fonctionne pour l'un ou pour l'autre mais pas en même temps..

    Oui mais c'est en arduino.. Je dois faire la compile sur un MPLABX XC8 en C, en arduino les fonctions sont différentes non ?

    Coco

  29. #28
    adipie

    Re : Pic16f1619

    ceci peu aussi te donner des idées : https://libstock.mikroe.com/projects...16x2-20x2-20x4

  30. #29
    paulfjujo

    Re : Pic16f1619

    bonjour,

    un parametre important est le type de PCF8754 ou PCF8754A ou autre
    pour l'adresse de base
    et les 3 strap ou pas sur les 3 bits d'adresse A0 A1 A2

    la liaison hardware LCD et PCF8754 doit etre aussi verifiée
    exemple
    // PCF8574 on pigboard YwRobot back located on LCD4x20
    // PCF8574 I2C LCD Port Definition
    // P7,P6,P5,P4 = Data, P3=Backlight (BL), P2=E, P1=RW, P0=RS

    le mien etait à l'adresse 0X4E ou 78
    pour en etre sur et pas tourner en rond
    on peut explorer les adresses avec cette fonction
    dans une boucle

    for(i=0x20; i<0xFF;i++)
    {
    check_device(i);
    }

    on peut voir au passage si il y a autre chose sur le bus I2C
    .. un RTC DS1302 par exemple

    en MikroC !

    Code:
    
    #ifdef With_LCD_I2C
    // **********  Config Hardware **********************
    #define LCD_ADDR 0x4E     // PCF8574 on pigboard YwRobot back located  on LCD4x20
    // PCF8574 I2C LCD Port Definition
    // P7,P6,P5,P4 = Data, P3=Backlight (BL), P2=E, P1=RW, P0=RS
    #define LCD_BL 0x08
    #define LCD_EN 0x04
    #define LCD_RW 0x02
    #define LCD_RS 0x01
    
    // ref : ODT OCM-20416D-A2023 LCD Module  8/4/1999
    // LCD Command
    #define LCD_CLEAR 0x01
    #define LCD_HOME  0x02
    #define Display_ON 0x0C
    #define Display_OFF 0x08
    #define LCD_LINE1 0x80      // 0x00 + bit D7=1
    #define LCD_LINE2 0xC0      // 0x40 + bit D7=1
    #define LCD_LINE3 0x94      // 0x14 + bit D7=1
    #define LCD_LINE4 0xD4      // 0x54 + bit D7=1
    #include "../common/Lib_LCD_I2C.h"
    #endif
    
    
    
    #define Versus "150424"
    //#define p16f1847
    #include "built_in.h"     // for  Hi  Lo ..etc
    #define PROCESSOR 16F1847
    #define POWER_SUPPLY  DC_5V
    #define FOSC 8.0  // MHz
    
    #define CR 13
    #define LF 10
    #define TAB 9
    #define BACK 8
    #define Beep 7
    #define Separator 0x20   // space
    #define LCD4x20_I2
    
    
    #define LCD_ADDR 0x4E     // PCF8574 on pigboard YwRobot back located  on LCD4x20
    // PCF8574 I2C LCD Port Definition
    // P7,P6,P5,P4 = Data, P3=Backlight (BL), P2=E, P1=RW, P0=RS
    #define LCD_BL 0x08
    #define LCD_EN 0x04
    #define LCD_RW 0x02
    #define LCD_RS 0x01
    
    // ref : ODT OCM-20416D-A2023 LCD Module  8/4/1999
    // LCD Command
    #define LCD_CLEAR 0x01
    #define LCD_HOME  0x02
    #define Display_ON 0x0C
    #define Display_OFF 0x08
    #define LCD_LINE1 0x80      // 0x00 + bit D7=1
    #define LCD_LINE2 0xC0      // 0x40 + bit D7=1
    #define LCD_LINE3 0x94      // 0x14 + bit D7=1
    #define LCD_LINE4 0xD4      // 0x54 + bit D7=1
    
    extern const code char mesg0[]="                   ";
    extern int Etat;
    extern unsigned char * txt;
    extern unsigned int addr;
    
    extern void strConstRamCpy(unsigned char *dest, const code char *source);
    extern void CRLF(void) ;
    
    unsigned char I2C_PCF8574_Write(unsigned char  Adr,unsigned char value);
    void LCD_init_4x20(void);
    void LCD_putcmd(unsigned char d,unsigned char cmdtype);
    void LCD_putch(unsigned char d);
    void LCD_puts(char *s);
    void LCD_putsRom(code char *s);
    
    //fonctions LCD derives
    //void Affiche_Time(int ModeOutput);
    void LCD_Msg_Status(const char* T);  // affiche un TEXTE en ligne 4
    void LCD_Write_CText(const char *txt) ;
    void LCDHandler(char c);
    
    
     //========== LCD 4x20 sur bus I2C ================================
      /*
      PCF8574 I2C LCD Routine
      LCD Data PCA8574: P7,P6,P5,P4
      LCD Control: P3: Back Light, P2: E-Enable, P1:RW, P0: RS
    */
    
     unsigned char I2C_PCF8574_Write(unsigned char Adr,unsigned char value)
    {
     unsigned char S,dummy;
     I2C1_Start();
     S = I2C1_Wr( Adr );
     if(S == -1)        //check if bus collision happened
            {
           dummy = SSPBUF;        //upon bus collision detection clear the buffer,
           SSPCON1.WCOL=0;    // clear the bus collision status bit
            }
    S = I2C1_Wr(value);
    I2C1_Stop();
    return(S);
    }
    
    void Erase_Line(int L)
    {
    switch(L)
     {
     case 1:
      {
       LCD_putcmd(LCD_LINE1,1);
       LCD_Write_CText(mesg0);
       LCD_putcmd(LCD_LINE1,1);
       break;
      }
      case 2:
      {
       LCD_putcmd(LCD_LINE2,1);
       LCD_Write_CText(mesg0);
       LCD_putcmd(LCD_LINE2,1);
        break;
      }
      case 3:
      {
       LCD_putcmd(LCD_LINE3,1);
       LCD_Write_CText(mesg0);
       LCD_putcmd(LCD_LINE3,1);
        break;
      }
      case 4 :
      {
       LCD_putcmd(LCD_LINE4,1);
       LCD_Write_CText(mesg0);
       LCD_putcmd(LCD_LINE4,1);
        break;
      }
     }
    }
    
    
    void LCD_putcmd(unsigned char d,unsigned char cmdtype)
    {
      unsigned char lcddata;
      // Put the Upper 4 bits data
      lcddata = (d & 0xF0)|LCD_BL;
      Etat=I2C_PCF8574_Write(addr,lcddata | LCD_EN);
      Delay_us(10);
      // Write Enable Pulse E: Hi -> Lo
      Etat=I2C_PCF8574_Write(addr,lcddata & ~LCD_EN);
      Delay_us(10);      // Delay 1us for 16 MHz Internal Clock
      // cmdtype = 0; One cycle write, cmdtype = 1; Two cycle writes
      if (cmdtype) {
        // Put the Lower 4 bits data
        lcddata = ((d << 4) & 0xF0)|LCD_BL;
        Etat=I2C_PCF8574_Write(addr,lcddata | LCD_EN);
        Delay_us(2);    // Delay 2us for 16 MHz Internal Clock
        // Write Enable Pulse E: Hi -> Lo
        Etat=I2C_PCF8574_Write(addr,lcddata & ~LCD_EN);
        Delay_ms(5);    // Delay 1us for 16 MHz Internal Clock
      }
    }
    
    void LCD_putch(unsigned char d)
    {
      unsigned char lcddata;
      // Put the Upper 4 bits data
      lcddata = (d & 0xF0)|LCD_BL|LCD_RS;
      Etat=I2C_PCF8574_Write(addr,lcddata | LCD_EN);
      Delay_us(5);      // Delay 2us for 16 MHz Internal Clock
      // Write Enable Pulse E: Hi -> Lo
      Etat=I2C_PCF8574_Write(addr,lcddata & ~LCD_EN);
      Delay_us(5);      // Delay 1us for 16 MHz Internal Clock
      // Put the Lower 4 bit data
      lcddata = ((d << 4) & 0xF0)|LCD_BL|LCD_RS;
      Etat=I2C_PCF8574_Write(addr,lcddata | LCD_EN);
      Delay_us(5);      // Delay 2us for 16 MHz Internal Clock
      // Write Enable Pulse E: Hi -> Lo
      Etat=I2C_PCF8574_Write(addr,lcddata & ~LCD_EN);
      Delay_us(5);      // Delay 1us for 16 MHz Internal Clock
    }
    
    void LCD_init_4x20(void)
    {
      addr=LCD_ADDR;
      // Wait for more than 15 ms after VCC rises to 4.5 V
      Delay_ms(1500);
      // Send Command 0x30
      LCD_putcmd(0x30,0);
      // Wait for more than 4.1 ms
      Delay_ms(50);
      // Send Command 0x30
      LCD_putcmd(0x30,0);
      // Wait for more than 100 us
      Delay_ms(20);
      // Send Command 0x30
      LCD_putcmd(0x30,0);
        Delay_ms(20);
      // Function set: Set interface to be 4 bits long (only 1 cycle write).
      LCD_putcmd(0x20,0);
        Delay_ms(20);
      // Function set: DL=0;Interface is 4 bits, N=1; 2 Lines, F=0; 5x8 dots font)
      LCD_putcmd(0x28,1);
        Delay_ms(20);
      // Display Off: D=0; Display off, C=0; Cursor Off, B=0; Blinking Off
      LCD_putcmd(0x08,1);
        Delay_ms(20);
      // Display Clear
      LCD_putcmd(LCD_CLEAR,1);
        Delay_ms(100);
      // Entry Mode Set: I/D=1; Increament, S=0; No shift
      LCD_putcmd(0x06,1);
        Delay_ms(20);
      // Display On, Cursor Off
      LCD_putcmd(0x0C,1);
        Delay_ms(20);
    }
    
    void LCD_putsRom(const code char *s)
    {int i=0;
      while((*s != 0)&& (i<20))
      {
        LCD_putch(*s);
        s++;i++;
      }
    }
    
    void LCD_puts( char *s)
    {int i=0;
      while((*s != 0)&& (i<20))
      {
        LCD_putch(*s);
        s++;   i++;
      }
    }
    
    void LCD_Write_CText(const char *txt)
    {
       while (*txt)
       LCD_putch(*txt++);
     }
    
    void LCDHandler(char c) {
      LCD_putch(c);
    }
    
    
     void LCD_Msg_Status(const char* T)
    {
    // utilise la table TEXE[] !
     LCD_putcmd(LCD_LINE4,1);
     strConstRamCpy(txt,T);
     //UART1_Write_Text(txt);    CRLF();
     LCD_puts(txt);
    }
    
    ****************************
    
    // usage 
    
    // **********  Config Hardware **********************
    #define LCD_ADDR 0x4E     
    // PCF8574 on pigboard YwRobot back located  on LCD4x20
    // PCF8574 I2C LCD Port Definition
    // P7,P6,P5,P4 = Data, P3=Backlight (BL), P2=E, P1=RW, P0=RS
    #define LCD_BL 0x08
    #define LCD_EN 0x04
    #define LCD_RW 0x02
    #define LCD_RS 0x01
    
    // ref : ODT OCM-20416D-A2023 LCD Module  8/4/1999
    // LCD Command
    #define LCD_CLEAR 0x01
    #define LCD_HOME  0x02
    #define Display_ON 0x0C
    #define Display_OFF 0x08
    #define LCD_LINE1 0x80      // 0x00 + bit D7=1
    #define LCD_LINE2 0xC0      // 0x40 + bit D7=1
    #define LCD_LINE3 0x94      // 0x14 + bit D7=1
    #define LCD_LINE4 0xD4      // 0x54 + bit D7=1
    
    
    #ifdef With_UART
    void check_device(unsigned short dev_address)
    {
    I2C1_Start();
     if (I2C1_Wr(dev_address))
     {
      UART1_Write_CText("NO Device found at adresse : ");
     }
     else
     {
      UART1_Write_CText(" Device found OK,at adresse : ");
      }
      ByteToStr(dev_address,txt);
      UART1_Write_Text(txt);
      I2C1_Stop();
     CRLF();
    }
    #endif
    
    // ... main program .....
       
       Init_Hardware();
    	
      txt=&TEXTE[0]; // init pointeur
      
      #ifdef With_UART
      APFCON1.TXCKSEL=0; //  TX/CK function is on RB2
      UART1_Init(9600);
      UART1_Write(CLS);
      Tempo_XmS(500);
      UART1_Write_CText(mesg1);
      Read_Msg_Eeprom(0);
      CRLF();
      #endif
    	
    
       I2C1_Init(400000);
      // adrr= adresse du PCF8754 du LCD4x20
      addr=LCD_ADDR;
      
      #ifdef With_UART
       check_device(addr);
      #endif
      
      
      LCD_init_4x20();
      LCD_putcmd(LCD_CLEAR,1);  // LCD Clear
      Delay_ms(1000);
     // LCD_putcmd(LCD_LINE1,1);  Delay_ms(25);  
      //LCD_putsRom((const code unsigned char *)"16F1847 8MHz MikroC ");
      LCD_putcmd(LCD_LINE1,1);
      LCD_putsRom((const code unsigned char *)"Version : "Version );
        LCD_putcmd(LCD_LINE2,1);
      LCD_putsRom((const code unsigned char *)"Mesure de Temperatur");
      LCD_putcmd(LCD_LINE3,1);
      LCD_putsRom((const code unsigned char *)"avec capteur DS18B20");
       LCD_putcmd(LCD_LINE4,1);
      LCD_putsRom((const code unsigned char *)"en mode O.W.S.      ");
      Delay_ms(3500);
      ....
    Dernière modification par paulfjujo ; 17/08/2017 à 16h23.

  31. #30
    invite0f7f4bae

    Re : Pic16f1619

    Bonjour Paul,

    Il y a possibilité d'adapter ton code à mon PIC1F1619 avec un PCF en liaison i2C sur mon LCD Midas sur MPLABX XC8 ?

    Je vais faire l'achat du PCF ce week end

    Coco

Page 1 sur 2 1 DernièreDernière
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...