Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

2xUART en mode PPS ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2153
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#1 Message par Jérémy » dim. 19 août 2018 12:06 lien vers la Data-Sheet : Cliquez ici

Bonjour à tous,

Je rencontre un probléme qui me tape sur le système. Avant de tout modifier ( surtout el PIC) je lance cette bouteille à la mer. :mur:

Pour faire ma télécommande de robot , je dois utiliser deux platines. C'est deux platines communiquent entre elles par UART.

L'une d'elle "la platine radio" doit aussi communiquer par UART avec le module radio. J'ai donc besoin d'utiliser les deux UART sur ce PIC.

Le PPS c'est bien beau et pratique pour le faire le typon, mais si ca complique la chose et ca c'est chiant.

Voila 3 jours que je tourne en rond et impossible d'avoir le comportement que je souhaite avec ces maudits UART.

J'exclue les problèmes HARD, car ça fonctionne très bien quand j’enlève un UART, ou que j'utilise mon câble USB/RS232.

Le but est de pouvoir émettre et recevoir sur les deux UART de ce PIC. Mon plus gros problème se trouve dans la reception et non à l’émission.

Je sais par exemple qu'il faut activé l'UART avec lequel on veut travailler ! pas pratique du coup ça, pour surveiller une reception sur les deux UART en même temps ! mais bon soite.
J'ai essayé différentes méthode pour faire le réglage PPS .

Voici un programme simplifié :

Code : Tout sélectionner

// PROGRAMME pour la télécommande-radio du robot

// DS du PIC 18F47K740 : http://ww1.microchip.com/downloads/en/DeviceDoc/40001844D.pdf

/*
Fosc = 64Mhz
UART1 = 9600 bauds
UART2 = 9600 bauds
*/

#define LED_R      LATC.B2      // Sortie led rouge
#define LED_V      LATC.B1      // Sortie led verte

//##################################     Variables    ##############################################
 
 unsigned char i
,Cpt_Point_milieu=;
 
//----- UART
 unsigned char Reception_UART1, Reception_UART2, Valeur, Valeur2,Reseau ;
 unsigned char Commande_Mode_OK, Parametre_OK, RESET_OK, F_Message_OK, F_Test;
 unsigned char Index_Buff1, Long_Buff1;
 unsigned int XOR;
 char Buffer_UART1[50];



//##############################################################################
//------------------------     INTERRUPTION        -----------------------------
void interrupt(){

 //-----------------------          UART 1        -----------------------------
  if((RC1IF_bit==1) && (RC1IE_bit==1)) {

     Reception_UART1 = UART1_Remappable_Read(); // On récupere la donnée

   }

 //-----------------------          UART 2        -----------------------------
  if((RC2IF_bit==1) && (RC2IE_bit==1)) {

     Reception_UART2 = UART2_Read();              // On récupere et stock la donnée
    //Reception_UART2 = UART2_Remappable_Read();
     
     LED_R 
= ~LED_R;

     switch (Valeur2){
        case 0:     if (Reception_UART2 == 0x02) Valeur2 = 1;
                    else                         Valeur2 = 0;
                    break;

        case 1:     if (Reception_UART2 == 0x99) Valeur2 = 2;
                    else                         Valeur2 = 0;
                    break;

        case 2:     if (Reception_UART2 == 0xFF)
                    LED_V = ~LED_V;
                    Valeur2 = 0;
                    break;
      }
   }
}

//#################################################################################################
//#########################################      MAIN      ########################################
//#################################################################################################
void main() {

   // Disable comparator
    CM1CON0 = 0;
    CM2CON0 = 0;

    // registre des LATx à 0
    LATA = LATB = LATC = LATD = LATE = 0;

    // registre analogiques
    ANSELA = 0b10000000;     // RA7 en analogique
    ANSELB = 0;              // Tout en numérique
    ANSELC = 0b00000001;     // RC0 en analogique
    ANSELD = 0b10100000;     // RD5 et RD7 en analogique
    ANSELE = 0;              // Tout en numérique

    // registres des I/O
    TRISA = 0b11101111;      // RA4 en sortie pour liaison
    TRISB = 0b11011111;      // RB5 en sortie Pour UART-TX2
    TRISC = 0b10100001;      // En sortie RC1 et RC2 pour led test, RC3 et RC4 pour liaison AMB et RC6 pour Tx1
    TRISD = 0b11111000;      // En sortie RC0, RC1 et RC2 pour liaison AMB
    TRISE = 0b11111111;      // Tout en entrée

    // Registre des Pull-UP
    WPUA = 0x0F;             // RA0, RA1, RA2 et RA3 en Pull UP
    WPUB = 0x0F;             // RB0, RB1, RB2 et RB3 en Pull UP
    WPUC = 0 ;
    WPUD = 0;
    WPUE = 0x01;             // RE0 en pull up pour BP

    // -----------------     Initialisation de la lecture analogique/numérique  ----------------------------------
    ADC_Init();
    delay_ms(10);
    ADFM_bit = 0;               // Justification à gauche. ainsi je transforme la lecture sur 10 bits en 8 bits et j'ignore les petits chiffres
    TRISD.B5 = TRISD.B7 = TRISA.B7 = TRISC.B0 = 1;    // met RA7, RC0,RD5 et RD7 en entrée
    ADPCH = 0b011101;           // Lecture de RD5 par défaut
  
//******************************************************************************************************
//******************************************************************************************************
//******************************************************************************************************
    //---------------------------     PPS     --------------------------------------------------
    // Séquence de déverouillage des PPS page 218 de la DS
    INTCON.GIE = 0;               // On désactive les INT

    Unlock_IOLOCK();    // On deverouille les PPS
    RB5PPS = 0x0B;      // RB5->EUSART2:TX2 = 0x0B;
    RX2PPS = 0x0F;      // RB7->EUSART2:RX2 = 0x0F;
    RX1PPS = 0x17 ;     // RC7->EUSART1:RX1;
    RC6PPS = 0x09;      // RC6->EUSART1:TX1;
    Lock_IOLOCK();      // On verouille les PPS

    //-----   UART1
    UART1_Remappable_Init(9600);
    delay_ms(100);
    RC1IF_bit = 0;         // RAZ flag
    RC1IE_bit = 1;         // Active les Interruptions sur Rx UART 1
    //UART_Set_Active(&UART1_Remappable_Read, &UART1_Remappable_Write, &UART1_Remappable_Data_Ready, &UART1_Remappable_Tx_Idle);

    //-----   UART2
    UART2_Init(9600);
    //UART2_Remappable_Init(9600);
    delay_ms(100);
    RC2IF_bit = 0;         // RAZ flag
    RC2IE_bit = 1;         // Active les Interruptions sur Rx UART 2
    
    
//UART_Set_Active(&UART2_Remappable_Read, &UART2_Remappable_Write, &UART2_Remappable_Data_Ready, &UART2_Remappable_Tx_Idle);

   //------------------------------   INTERRUPTION    -------------------------------------
    //-----      GLOBAL
    INTCON.PEIE = 1 ;      // On active les INT périphériques
    INTCON.GIE  = 1 ;       // On active toutes les INT

    // séquence de clignotement au demarrage (3 fois)
    for (i=0;i<=5;i++){
       LED_R = ~LED_R ;
       delay_ms(100);
     }

//#################################################################################################
//###############################      BOUCLE PRINCIPALE      #####################################
//#################################################################################################

 while(1){
  /*
   delay_ms(2000);
   UART_Set_Active(&UART2_Remappable_Read, &UART2_Remappable_Write, &UART2_Remappable_Data_Ready, &UART2_Remappable_Tx_Idle);
   delay_ms(2000);
   UART_Set_Active(&UART1_Remappable_Read, &UART1_Remappable_Write, &UART1_Remappable_Data_Ready, &UART1_Remappable_Tx_Idle);
  */

 }
}


Dans ce programme j'ai tout essayé en terme de switch d'uART .

L'uart 1 est branché sur RC6 et RC7, ce qui est les broches par défaut de cet UART, donc techniquement je n'ai pas besoin de le remapper . avec un simple UART1_Init();, ce devrait le faire.
L'UART2 lui est remapper donc il faut que j'affecte les PIN. mais ça ne fonctionne pas .

J'ai essaye de remapper les deux, aucun , juste un puis juste l'autre etc ..... rien n'y fait .
J’ai active un UART puis l'autre puis aucun ... rien.

Avez-vous des infos sur comment bien initialiser le PPS et les UART en particulier ?
Si je ne remappe pas l'UART1 suis je opbligé d'activer l'UART21 pour l'utiliser ?

Mon probléme n'est pas facile a comprendre j'en suis conscient ! mais la moindre info sur le remappage des broches pourraient mettre utile .

Concrètement voila ce que je remarque. Je fais clignoter le led rouge quand je reçois un Caractère dans l'UART2 , si je reçois 3 bon caractères j'allume la led verte.
Ma led rouge clignote bien mais ne passe jamais au vert ! donc les caractères reçus ne sont pas bon je pense .
Les deux platine fonctionnement en 9600 bauds, et l'alimentation et les masses sont communes ainsi que les niveaux.

MA platine écran envoie toutes les 500ms via son UART1 les caractères ( 0x02 0x99 0xFF) . cet envoie est vérifie par le cordon sur le PC aucun probléme la dessus.

JE ne sais plus quoi faire a part changer de PIC, pour retourner sur un PIC18F46K22 qui a deux UART hard....

Merci de m'avoir lu !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

2xUART en mode PPS ?
satinas
Passioné
Passioné
Messages : 314
Enregistré en : novembre 2015

#2 Message par satinas » dim. 19 août 2018 18:36 lien vers la Data-Sheet : Cliquez ici

Bonjour Jérémy

Toujours ce problème avec MikroC et les uarts sur pps.
Je comprends pas pourquoi ils ont ajouté des fonctions uart spécifiques aux pps.
Les modules uart du pic se manipulent de la même façon, avec pps ou sans.
Conserve ta config pps, et utilise ces fonctions à la place des fonctions MikroC.
Avec ça il n'est plus nécessaire de faire des UART_Set_Active()
L'init est valable si FOSC = 64MHz

Code : Tout sélectionner

void Uart1_Init(unsigned long baudrate)
{
  BAUD1CON = 0x08;                  // uart, brg16=1
  SP1BRG   = 64000000/4/baudrate-1; // uart, speed
  TX1STA   = 0x24;                  // uart, tx on, brgh=1
  RC1STA   = 0x90;                  // uart on, rx on
}

void Uart2_Init(unsigned long baudrate)
{
  BAUD2CON = 0x08;                  // uart, brg16=1
  SP2BRG   = 64000000/4/baudrate-1; // uart, speed
  TX2STA   = 0x24;                  // uart, tx on, brgh=1
  RC2STA   = 0x90;                  // uart on, rx on
}

char Uart1_Read(void)
{
  return RC1REG;
}

char Uart2_Read(void)
{
  return RC2REG;
}

void Uart1_Write(char c)
{
  while (!PIR3bits.TX1IF) ;
  TX1REG = c;
}

void Uart2_Write(char c)
{
  while (!PIR3bits.TX2IF) ;
  TX2REG = c;
}

2xUART en mode PPS ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2153
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#3 Message par Jérémy » dim. 19 août 2018 23:15 lien vers la Data-Sheet : Cliquez ici

Bonsoir Satinas ,

Merci 'avoir lu mon code.

J4ai mis ton code en lieu et place de celui de mikroC, mais rien ne fonctionne ! Je n’arrive même pas a faire fonctionner l'UART1 classique !

J'ai seulement remplacer le mot PIR3bits.TX1IF que ne comprends pas mon compilateur par TX1IF_bit qui est la même chose.

PS : je suis bien en 64Mhz
C'est en faisant des erreurs, que l'on apprend le mieux !!!

2xUART en mode PPS ?
satinas
Passioné
Passioné
Messages : 314
Enregistré en : novembre 2015

#4 Message par satinas » lun. 20 août 2018 08:04 lien vers la Data-Sheet : Cliquez ici

Bonjour,

Connecte ton PC sur C6/C7 et vérifie ce premier programme. Si on appuie sur une touche, le pic renvoie la lettre suivante.

Code : Tout sélectionner

void main(void)                   // uart1 only
{
  OSCCON1 = 0x60; OSCFRQ = 0x08;  // FOSC = 64MHz
  ANSELC = 0x00;                  // pins numériques

  PPSLOCK = 0x55;                 // unlock PPS
  PPSLOCK = 0xAA;
  PPSLOCKED_bit = 0;
  RC6PPS  = 0x09;                 // TX1 -> RC6
  RX1PPS  = 0x17;                 // RX1 <- RC7
  PPSLOCK = 0x55;                 // lock PPS
  PPSLOCK = 0xAA;
  PPSLOCKED_bit = 1;
 
  Uart1_Init(9600); delay_ms(10);
  while (1) {
    if (RC1IF_bit) Uart1_Write(Uart1_Read()+1);
  }
}


Ensuite essaie avec 2 ports série C6/C7 et B5/B7.

Code : Tout sélectionner

void main(void)                   // uart1 et uart2
{
  OSCCON1 = 0x60; OSCFRQ = 0x08;  // FOSC = 64MHz
  ANSELB = ANSELC = 0x00;         // pins numériques

  PPSLOCK = 0x55;                 // unlock PPS
  PPSLOCK = 0xAA;
  PPSLOCKED_bit = 0;
  RC6PPS  = 0x09;                 // TX1 -> RC6
  RX1PPS  = 0x17;                 // RX1 <- RC7
  RB5PPS  = 0x0B;                 // TX2 -> RB5
  RX2PPS  = 0x0F;                 // RX2 <- RB7
  PPSLOCK = 0x55;                 // lock PPS
  PPSLOCK = 0xAA;
  PPSLOCKED_bit = 1;
 
  Uart1_Init(9600);
  Uart2_Init(9600); delay_ms(10);
  while (1) {
    if (RC1IF_bit) Uart1_Write(Uart1_Read()+1);
    if (RC2IF_bit) Uart2_Write(Uart2_Read()+2);
  }
}


Si ça marche, tu peux passer aux interruptions.
Les bit RC1IF_bit et RC2IF_bit sont modifiés uniquement par le pic, pas la peine de les remettre à zéro dans le soft.
B7 sert pour la programmation, pourquoi l'utilises-tu ?

2xUART en mode PPS ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2153
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#5 Message par Jérémy » lun. 20 août 2018 08:42 lien vers la Data-Sheet : Cliquez ici

Bonjour ,

Merci à toi,Je m'occupe de tester ça ce soir ..... car c'est le retour au taf aujourd’hui.... :sad:
C'est en faisant des erreurs, que l'on apprend le mieux !!!

2xUART en mode PPS ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2153
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#6 Message par Jérémy » lun. 20 août 2018 14:11 lien vers la Data-Sheet : Cliquez ici

Étant toujours sur la brèche j'ai pu testé ton code.

Malheureusement il ne fonctionne pas ! ou plutôt je n'arrive pas à le faire fonctionner.

Voila ou j'en suis ! Je penche pour un problème d'initialisation, le seul point ou je ne comprends pas tout . Surtout le Baud rate generator !

Code : Tout sélectionner

// PROGRAMME pour la télécommande-radio du robot

// DS du PIC 18F47K740 : http://ww1.microchip.com/downloads/en/DeviceDoc/40001844D.pdf

/*
Fosc = 64Mhz
*/
#define LED_R      LATC.B2      // Sortie led rouge
#define LED_V      LATC.B1      // Sortie led verte
#define BP         PORTE.B0     // Entree pour BP

//##################################     Variables    ##############################################
 
unsigned char i;
//----- UART
 
unsigned char Reception_UART1Reception_UART2 ;
 
unsigned char F_Test;

//##################################     PROTOTYPE    ##############################################
void Uart1_Init(unsigned long);
char Uart1_Read(void);
void Uart1_Write(char);

//##############################################################################
//------------------------     INTERRUPTION        -----------------------------
void interrupt(){
/*
//-----------------------          UART 1        -----------------------------
  if((RC1IF_bit==1) && (RC1IE_bit==1)) {

     Reception_UART1 = Uart1_Read(); // On récupere la donnée
     Uart1_Write( Reception_UART1);
     LED_R = ~LED_R;
   }
  */
}

//#################################################################################################
//#########################################      MAIN      ########################################
//#################################################################################################
void main() {

   
// Disable comparator
    
CM1CON0 0;
    
CM2CON0 0;
    
    
LATB.B1 LATB.B2 0;
    
TRISC.B1 TRISC.B2 0;       // Sortie pour led verte et rouge
    
ANSELC 0b00000000;

    
LED_R LED_V 0;
//******************************************************************************************************
//******************************************************************************************************
//******************************************************************************************************
  
PPSLOCK 0x55;                 // unlock PPS
  
PPSLOCK 0xAA;
  
PPSLOCKED_bit 0;
  
RC6PPS  0x09;                 // TX1 -> RC6
  
RX1PPS  0x17;                 // RX1 <- RC7
  
PPSLOCK 0x55;                 // lock PPS
  
PPSLOCK 0xAA;
  
PPSLOCKED_bit 1;
  
  
Uart1_Init(9600); 
  
delay_ms(10);
    
  
//------------------------------   INTERRUPTION    -------------------------------------
/*
  RC1IE_bit   = 1 ;
  INTCON.PEIE = 1 ;      // On active les INT périphériques
  INTCON.GIE  = 1 ;       // On active toutes les INT
*/
  
 /*
  // séquence de clignotement au demarrage (3 fois)
  for (i=0;i<=5;i++){
     LED_R = ~LED_R ;
     delay_ms(100);
   }
  */
//#################################################################################################
//###############################      BOUCLE PRINCIPALE      #####################################
//#################################################################################################
 
while(1){
    if (
RC1IF_bitUart1_Write(Uart1_Read()+1);
 }
}

//#################################################################################################
//###############################      PROGRAMME SECONDAIRE     ###################################
//#################################################################################################

void Uart1_Init(unsigned long baudrate)
{
  
BAUD1CON 0x08;                  // uart, brg16=1
  
SP1BRG   64000000/4/baudrate-1// uart, speed
  
TX1STA   0x24;                  // uart, tx on, brgh=1
  
RC1STA   0x90;                  // uart on, rx on
}

char Uart1_Read(void)
{
  return 
RC1REG;
}

void Uart1_Write(char c)
{
   while (!
TX1IF_bit) ;
   
TX1REG c;


J'ai essayé également de faire un envoi tout simple de un caractère , et le résultat n'est pas bon non plus. Il me renvoie des 0xFF ou 0xEF des trucs du genre qui non rien a voir !

JE ne sais plus ou je cru lire que se PIC avait un buffer de deux bytes en réception ? l'erreur ne viendrais pas d’ici , je vais me replonger dans la DS
C'est en faisant des erreurs, que l'on apprend le mieux !!!

2xUART en mode PPS ?
satinas
Passioné
Passioné
Messages : 314
Enregistré en : novembre 2015

#7 Message par satinas » lun. 20 août 2018 14:43 lien vers la Data-Sheet : Cliquez ici

Les 2 programmes ci-dessus marchent parfaitement chez moi. Je les compile avec C18, ils devraient aussi passer sur MikroC je suppose. Regarde à l'oscillo la durée d'un bit envoyé en série par le pic.

2xUART en mode PPS ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2153
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#8 Message par Jérémy » lun. 20 août 2018 15:16 lien vers la Data-Sheet : Cliquez ici

J'ai enfin trouvé la coquille ! Cela aura le mérite de m'avoir fait bosser a fond la DS et la compréhension du fonctionnement de l'UART !

Il y a une coquille dans ton calcul de baud rate !

En effet avec un compteur de 16 bit ( BRG16 à 1) , BRGH à 1 et SYNC à 0 , la formule du SP1BRG est :
(Fosc / (4 x Baudrate) ) -1 = ( 64000000 / (4 x 9600)) - 1~= 1666

En initialisant avec :

Code : Tout sélectionner

void Uart1_Init(unsigned long baudrate)
{
  
BAUD1CON 0b00001000;              // ABDOVF=0; RCIDL=0; bit5=vide; SCKP=0; BRG16=1; bit2=vide; WUE=0; ABDEN=0
  
SP1BRG   1666;                    // SP1BRG = SPBRGH + SPBRGL = (Fosc/(4*Baudrate))-1
  
TX1STA   0b00100100;              // CSRC=0; TX9=0; TXEN=1; SYNC=0; SENDB=0; BRGH=1; TRMT=0; TX9D=0
  
RC1STA   0b10010000;              // SPEN=1; RX9=0; SREN=0; CREN=1; ADDEN=0; FERR=0; OERR=0; RX9D=0


Ça fonctionne enfin !

Pour la partie émission du moins ! Je continue à avancer grâce à ton aide précieuse. Par contre c'est bizarre que ça fonctionne bien chez toi :? :shock:
C'est en faisant des erreurs, que l'on apprend le mieux !!!

2xUART en mode PPS ?
satinas
Passioné
Passioné
Messages : 314
Enregistré en : novembre 2015

#9 Message par satinas » lun. 20 août 2018 15:21 lien vers la Data-Sheet : Cliquez ici

-> 64000000/4/9600 - 1 cela donne 1665. On est pas à un près, surtout à 9600 bauds. Peut être que MikroC calcule pas pareil, il faudrait afficher en debug la valeur de SPBRG aprs calcul.

2xUART en mode PPS ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2153
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#10 Message par Jérémy » lun. 20 août 2018 15:36 lien vers la Data-Sheet : Cliquez ici

Code : Tout sélectionner

64000000/4/9600 - 1 cela donne 1665


Lol tu as raison ! je n'avais pas fait ton calcul à la calculatrice !

J'ai donc trouvé l'erreur , on se rapproche !
C'est le passage d'argument qui foire.

Pour bien faire au lieu d'ecrire

Code : Tout sélectionner

void Uart1_Init(unsigned long baudrate)
{
  BAUD1CON = 0b00001000;                // ABDOVF=0; RCIDL=0; bit5=vide; SCKP=0; BRG16=1; bit2=vide; WUE=0; ABDEN=0
  SP1BRG   =1666                   ; // SP1BRG = SPBRGH + SPBRGL = (Fosc/(4*Baudrate))-1
  TX1STA   = 0b00100100;                // CSRC=0; TX9=0; TXEN=1; SYNC=0; SENDB=0; BRGH=1; TRMT=0; TX9D=0
  RC1STA   = 0b10010000;                // SPEN=1; RX9=0; SREN=0; CREN=1; ADDEN=0; FERR=0; OERR=0; RX9D=0
}


J'ai écris avec la formule au cas ou je désire changer le baudrate :

Code : Tout sélectionner

void Uart1_Init(unsigned long baudrate)
{
  BAUD1CON = 0b00001000;                // ABDOVF=0; RCIDL=0; bit5=vide; SCKP=0; BRG16=1; bit2=vide; WUE=0; ABDEN=0
  SP1BRG   = (64000000/(4*baudrate))-1; // SP1BRG = SPBRGH + SPBRGL = (Fosc/(4*Baudrate))-1
  TX1STA   = 0b00100100;                // CSRC=0; TX9=0; TXEN=1; SYNC=0; SENDB=0; BRGH=1; TRMT=0; TX9D=0
  RC1STA   = 0b10010000;                // SPEN=1; RX9=0; SREN=0; CREN=1; ADDEN=0; FERR=0; OERR=0; RX9D=0
}


et la ça coince, je ne reçois plus rien !
Il doit y avoir un erreur de cast non ? car SP1BRG est un word alors qu'on fait des calculs avec des longs ? comme faire un cast dans ce cas de figure ?
C'est en faisant des erreurs, que l'on apprend le mieux !!!


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité