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 ---
- 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 ---
Modérateur : Jérémy
LCD en serie + PIC 18F45K22
-
Jérémy
Administrateur du site- Messages : 2722
- Âge : 44
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonsoir à tous,
Après le message intéressant de AchileT, sur les champs de bits et les structures, j'ai voulus approfondir mes maigres connaissances sur le sujet . Par la même occasion je me suis dis pour quoi pas utiliser le LCD série qui est sur la carte Easypic, histoire d'apprendre 2 choses en même temps. et finir par un tuto !.
Oui mais voila, je comprends déjà pas le LCD serie avec MikroC ?
Ça m'aurais parus plus simple après le LCD en I²C . et ben non .
Mon but premier était de créer un affichage du reflet des sorties du PORTC En appuyant sur les BP respectifs du PORTD. Donc afficher huit "0" quand toutes les sorties du PORTC sont à 0. Si il y à un appui sur un BP du PORTD cela change la valeur de sortie en "1" et je le vois changer aussi à l'écran . Tout ça afin de simuler des Tout ou Rien, pour travailler sur les structures.
J’espère avoir été assez explicite dans le but final .
Oui mais voila rien ne se passe comme prévu.
Surtout pour la longueur de l'affichage . Voici un programme avec seulement 2 BP au lieu de 8. Mais mon affichage se fait sur 4 caractères, donc j'efface les chiffres avant car je ré-écris dessus .
Je n'ai pas trouvé de recette miracle pour n'afficher qu'un seul caractère ?
Ça doit vous paraitre bête mais j'ai cherché un moment !
Je programme avec MikroC sur un PIC 18F45K22 (datasheet)
Le schéma de la carte Easypic7 se trouve ici : Lien
Après le message intéressant de AchileT, sur les champs de bits et les structures, j'ai voulus approfondir mes maigres connaissances sur le sujet . Par la même occasion je me suis dis pour quoi pas utiliser le LCD série qui est sur la carte Easypic, histoire d'apprendre 2 choses en même temps. et finir par un tuto !.
Oui mais voila, je comprends déjà pas le LCD serie avec MikroC ?
Ça m'aurais parus plus simple après le LCD en I²C . et ben non .
Mon but premier était de créer un affichage du reflet des sorties du PORTC En appuyant sur les BP respectifs du PORTD. Donc afficher huit "0" quand toutes les sorties du PORTC sont à 0. Si il y à un appui sur un BP du PORTD cela change la valeur de sortie en "1" et je le vois changer aussi à l'écran . Tout ça afin de simuler des Tout ou Rien, pour travailler sur les structures.
J’espère avoir été assez explicite dans le but final .
Oui mais voila rien ne se passe comme prévu.
Surtout pour la longueur de l'affichage . Voici un programme avec seulement 2 BP au lieu de 8. Mais mon affichage se fait sur 4 caractères, donc j'efface les chiffres avant car je ré-écris dessus .
Je n'ai pas trouvé de recette miracle pour n'afficher qu'un seul caractère ?
Ça doit vous paraitre bête mais j'ai cherché un moment !
Je programme avec MikroC sur un PIC 18F45K22 (datasheet)
Le schéma de la carte Easypic7 se trouve ici : Lien
Code : Tout sélectionner
/*##################################################################################
############################## Variable / Constante #########################
##################################################################################*/
char BP0,BP1;
char *text[4];
// Connexions du module LCD
sbit LCD_RS at LATB4_bit;
sbit LCD_EN at LATB5_bit;
sbit LCD_D4 at LATB0_bit;
sbit LCD_D5 at LATB1_bit;
sbit LCD_D6 at LATB2_bit;
sbit LCD_D7 at LATB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// FIN Connexions du module LCD
/*##################################################################################
############################ PROGRAMME PRINCIPAL ##############################
##################################################################################*/
void main(){
ANSELB = 0; // Configure le PORTB en digital
TRISB = 0b00000000; // Configure le PORTB en Sortie
LATB = 0; // Initialise à 0
ANSELC = 0; // Configure le PORTC en digital
TRISC = 0b00000000; // Configure le PORTC en Sortie
LATC = 0; // Initialise à 0
ANSELD = 0; // Configure le PORTD en digital
TRISD = 0b11111111; // Configure le PORTD en Entrée
LATD = 0; // Initialise à 0
Lcd_Init(); // Initialisation du LCD
Lcd_Cmd(_LCD_CLEAR); // On efface l'écran
Lcd_Cmd(_LCD_CURSOR_OFF); // On arrête le curseur
delay_ms(500); // pause de 500ms
Lcd_Out(2,1,"7 6 5 4 3 2 1 0"); // Affichage du numéro des BP sur la ligne du bas
BP0 = 0;
//########################## BOUCLE INFINIE ##################################
while(1) { // boucle sans fin
if (PORTD.B0 == 1){ // Détection d'appui sur un BP
delay_ms(30);
if (PORTD.B0 == 1){
while (PORTD.B0 == 1); // Anti-rebond
PORTC.B0 = ~PORTC.B0 ; // On inverse la sortie si l'Appui est validé
BP0 = PORTC.B0; // On affecte l'état de la sortie à une variable
ByteToStr (BP0,text); // On convertie la variable en string pour affichage
Lcd_Out(1,13,text) ; // On affiche notre valeur
}
}
if (PORTD.B1 == 1){ // Même procédé mais avec le BP1
delay_ms(30);
if (PORTD.B1 == 1){
while (PORTD.B1 == 1);
PORTC.B1 = ~PORTC.B1 ;
BP1 = PORTC.B1;
ByteToStr (BP1,text);
Lcd_Out(1,11,text) ;
}
}
}
}
LCD en serie + PIC 18F45K2
- paulfjujo
Expert- Messages : 2589
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
Attention
est un tableau de 4 pointeurs !
char text[5]; // tableau de 5 emplacement ou chaine de 4 caracteres
text peut alors etre utilisé directement comme pointeur sur la table text[];
pour etre plus explicite, tu pourrais definir comme ceci
char text[17]; // pourquoi ne pas definir une taille de 17 pour pouvoir loger un string (chaine de 16 caracteres) = 1 ligne de 16 car LCD
char *p ; // definition d'un pointeur de charactere
dans le main() , ne pas oublier de l'initialiser sur le premier emplacement( [0] de la table text
p=&text[0]; // & = adresse de
et ensuite on utilise p (pointeur) pour la convertion et l'affichage LCD
Attention
Code : Tout sélectionner
char *text[4];
est un tableau de 4 pointeurs !
char text[5]; // tableau de 5 emplacement ou chaine de 4 caracteres
text peut alors etre utilisé directement comme pointeur sur la table text[];
pour etre plus explicite, tu pourrais definir comme ceci
char text[17]; // pourquoi ne pas definir une taille de 17 pour pouvoir loger un string (chaine de 16 caracteres) = 1 ligne de 16 car LCD
char *p ; // definition d'un pointeur de charactere
dans le main() , ne pas oublier de l'initialiser sur le premier emplacement( [0] de la table text
p=&text[0]; // & = adresse de
et ensuite on utilise p (pointeur) pour la convertion et l'affichage LCD
Code : Tout sélectionner
ByteToStr (BP0,p);
Lcd_Out(1,11,p);
LCD en serie + PIC 18F45K2
-
Jérémy
Administrateur du site- Messages : 2722
- Âge : 44
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Re,
J'ai essayer ton astuce Paulfjujo, mais le hic c'est que quand j’écris un chiffre à droite cela m'efface celui de gauche !Je crois que cela est normal car le text est sur 3 caractères ? donc espace espace chiffre non ?
Quand j’écris char *p; il me marque une erreur lors de la compilation ;
j'ai du ecrirechar *ptr; . Peut être que c'est trop court ?
Bon j'avoue du coup être un peu perdu avec ces pointeurs , ca me fait un bon exercice en tout cas . Je sens que je suis pas loin mais j'y arrive pas .
Voici mon programme modifié : mais qui m'efface les chiffres
J'ai essayer ton astuce Paulfjujo, mais le hic c'est que quand j’écris un chiffre à droite cela m'efface celui de gauche !Je crois que cela est normal car le text est sur 3 caractères ? donc espace espace chiffre non ?
Quand j’écris char *p; il me marque une erreur lors de la compilation ;
7 393 'p' Identifier redefined Structure de bits.c
j'ai du ecrirechar *ptr; . Peut être que c'est trop court ?
Bon j'avoue du coup être un peu perdu avec ces pointeurs , ca me fait un bon exercice en tout cas . Je sens que je suis pas loin mais j'y arrive pas .
Voici mon programme modifié : mais qui m'efface les chiffres
Code : Tout sélectionner
/*##################################################################################
############################## Variable / Constante #########################
##################################################################################*/
char BP0,BP1;
char text[17];
char *ptr ;
// Connexions du module LCD
sbit LCD_RS at LATB4_bit;
sbit LCD_EN at LATB5_bit;
sbit LCD_D4 at LATB0_bit;
sbit LCD_D5 at LATB1_bit;
sbit LCD_D6 at LATB2_bit;
sbit LCD_D7 at LATB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// FIN Connexions du module LCD
/*##################################################################################
############################ PROGRAMME PRINCIPAL ##############################
##################################################################################*/
void main(){
ANSELB = 0; // Configure le PORTB en digital
TRISB = 0b00000000; // Configure le PORTB en Sortie
LATB = 0; // Initialise à 0
ANSELC = 0; // Configure le PORTC en digital
TRISC = 0b00000000; // Configure le PORTC en Sortie
LATC = 0; // Initialise à 0
ANSELD = 0; // Configure le PORTD en digital
TRISD = 0b11111111; // Configure le PORTD en Entrée
LATD = 0; // Initialise à 0
Lcd_Init(); // Initialisation du LCD
Lcd_Cmd(_LCD_CLEAR); // On efface l'écran
Lcd_Cmd(_LCD_CURSOR_OFF); // On arrete le curseur
delay_ms(500); // pause de 500ms
Lcd_Out(1,1,"0 0 0 0 0 0 0 0"); // Initialisation des valeurs à zero ( toutes les led sosnt éteintes !)
Lcd_Out(2,1,"7 6 5 4 3 2 1 0"); // Affichage du numero des BP sur la ligne du bas
ptr=&text[0];
BP0 = 0;
//########################## BOUCLE INFINIE ##################################
while(1) { // boucle sans fin
if (PORTD.B0 == 1){ // Detection d'appui sur un BP
delay_ms(30);
if (PORTD.B0 == 1){
while (PORTD.B0 == 1); // ANti-rebond
PORTC.B0 = ~PORTC.B0 ; // On inverse la sortie si l'Appui est validé
BP0 = PORTC.B0; // On affecte l'état de la sortie à une variable
ByteToStr (BP0,ptr); // On convertie la vriable en string pour affichage
Lcd_Out(1,13,ptr) ; // On affiche notre valeur
}
}
if (PORTD.B1 == 1){ // Même procédé mais avec le BP1
delay_ms(30);
if (PORTD.B1 == 1){
while (PORTD.B1 == 1);
PORTC.B1 = ~PORTC.B1 ;
BP1 = PORTC.B1;
ByteToStr (BP1,ptr);
Lcd_Out(1,11,ptr) ;
}
}
}
}
LCD en serie + PIC 18F45K2
-
Jérémy
Administrateur du site- Messages : 2722
- Âge : 44
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Re moi,
Voila je pense avoir un peu compris le fonctionnement de ce pointeur , mais ce n'est pas encore très transparent !.
en tout cas j'ai réussis à avancer et le programme s’exécute parfaitement .
J'affiche donc un parfait reflet de mes sorties du PORTC quand je les changes avec les BP du PORTD
0 = éteint , 1=allumer;
Peut-être qu'il possède des erreurs ou améliorations a faire etc ....
Voila je pense avoir un peu compris le fonctionnement de ce pointeur , mais ce n'est pas encore très transparent !.
en tout cas j'ai réussis à avancer et le programme s’exécute parfaitement .
J'affiche donc un parfait reflet de mes sorties du PORTC quand je les changes avec les BP du PORTD
0 = éteint , 1=allumer;
Peut-être qu'il possède des erreurs ou améliorations a faire etc ....
Code : Tout sélectionner
/*##################################################################################
############################## Variable / Constante #########################
##################################################################################*/
char text[17]; // création d'un tableau pour aceuillir une chaine de 16 caracteres + terminaison ( 1 ligne)
char *ptr ; // Création d'un pointeur
void affichage (); // Déclaration de la fonction ( mise à la fin)
// Connexions du module LCD
sbit LCD_RS at LATB4_bit;
sbit LCD_EN at LATB5_bit;
sbit LCD_D4 at LATB0_bit;
sbit LCD_D5 at LATB1_bit;
sbit LCD_D6 at LATB2_bit;
sbit LCD_D7 at LATB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// FIN Connexions du module LCD
/*##################################################################################
############################ PROGRAMME PRINCIPAL ##############################
##################################################################################*/
void main(){
ANSELB = 0; // Configure le PORTB en digital
TRISB = 0b00000000; // Configure le PORTB en Sortie
LATB = 0; // Initialise à 0
ANSELC = 0; // Configure le PORTC en digital
TRISC = 0b00000000; // Configure le PORTC en Sortie
LATC = 0; // Initialise à 0
ANSELD = 0; // Configure le PORTD en digital
TRISD = 0b11111111; // Configure le PORTD en Entrée
LATD = 0; // Initialise à 0
Lcd_Init(); // Initialisation du LCD
Lcd_Cmd(_LCD_CLEAR); // On efface l'écran
Lcd_Cmd(_LCD_CURSOR_OFF); // On arrete le curseur
delay_ms(500); // pause de 500ms
Lcd_Out(1,1,"0 0 0 0 0 0 0 0"); // Initialisation des valeurs à zero ( toutes les led sosnt éteintes !)
Lcd_Out(2,1,"7 6 5 4 3 2 1 0"); // Affichage du numero des BP sur la ligne du bas
ptr=&text[2]; // Le pointeur désigne le 3iéme caractère de la variable "text" (0,1,2, /0)
//########################## BOUCLE INFINIE ##################################
while(1) { // boucle sans fin
if (PORTD.B0 == 1 | PORTD.B1 == 1 | PORTD.B2 == 1 | PORTD.B3 == 1 | // Detection d'appui sur un BP
PORTD.B4 == 1 | PORTD.B5 == 1 | PORTD.B6 == 1 | PORTD.B7 == 1 )
{
affichage(); // Si un BP est appuyé on effectue la focntion affichage
}
}
}
/*##################################################################################
############################ PROGRAMME SECONDAIRE #############################
##################################################################################*/
void affichage(){ // Focntion qui determine le BP appuyé et qui change la valeur de sortie
delay_ms(30); // delais anti-rebond
if (PORTD.B0 == 1){ // Si c'est le BP0 qui est appuyé
while (PORTD.B0 == 1); // Anti-rebond , en bouclant tant qu'on a pas relaché
PORTC.B0 = ~PORTC.B0 ; // On inverse la sortie si l'Appui est validé
ByteToStr (PORTC.B0,text); // On convertit la valeur de sortie en string pour pouvoir l'afficher
Lcd_Out(1,15,ptr) ; // On affiche notre valeur via le pointeur positionner sur le 3 caractères de "text"
}
if (PORTD.B1 == 1){ // Même procédé
while (PORTD.B1 == 1);
PORTC.B1 = ~PORTC.B1 ;
ByteToStr (PORTC.B1,text);
Lcd_Out(1,13,ptr) ;
}
if (PORTD.B2 == 1){ // Même procédé
while (PORTD.B2 == 1);
PORTC.B2 = ~PORTC.B2 ;
ByteToStr (PORTC.B2,text);
Lcd_Out(1,11,ptr) ;
}
if (PORTD.B3 == 1){ // Même procédé
while (PORTD.B3 == 1);
PORTC.B3 = ~PORTC.B3 ;
ByteToStr (PORTC.B3,text);
Lcd_Out(1,9,ptr) ;
}
if (PORTD.B4 == 1){ // Même procédé
while (PORTD.B4 == 1);
PORTC.B4 = ~PORTC.B4 ;
ByteToStr (PORTC.B4,text);
Lcd_Out(1,7,ptr) ;
}
if (PORTD.B5 == 1){ // Même procédé
while (PORTD.B5 == 1);
PORTC.B5 = ~PORTC.B5 ;
ByteToStr ( PORTC.B5,text);
Lcd_Out(1,5,ptr) ;
}
if (PORTD.B6 == 1){ // Même procédé
while (PORTD.B6 == 1);
PORTC.B6 = ~PORTC.B6 ;
ByteToStr (PORTC.B6,text);
Lcd_Out(1,3,ptr) ;
}
if (PORTD.B7 == 1){ // Même procédé
while (PORTD.B7 == 1);
PORTC.B7 = ~PORTC.B7 ;
ByteToStr (PORTC.B7,text);
Lcd_Out(1,1,ptr) ;
}
}
LCD en serie + PIC 18F45K2
- paulfjujo
Expert- Messages : 2589
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
ce doit etre parce que MikroC se l'a accaparé pour son propre usage !
avec un PIC18F8750 ..pas de rejet.. avec l'usage de char *p;
Code : Tout sélectionner
j'ai du ecrire char *ptr; . Peut être que c'est trop court ?
ce doit etre parce que MikroC se l'a accaparé pour son propre usage !
avec un PIC18F8750 ..pas de rejet.. avec l'usage de char *p;
LCD en serie + PIC 18F45K2
-
Jérémy
Administrateur du site- Messages : 2722
- Âge : 44
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonsoir,
Pou continuer mes investigations , je cherche a affiché une variable sur le LCD en Binaire ?
j'ai beau réfléchir je ne vois pas trop comment faire ?
Le but étant de recouper avec le post de AchileT, et de faire un programme qui change un Bit d'une variable quand on appuie sur le BP correspondant et d'afficher cette variable en binaire . Ainsi je pourrais expliquer le champ de bit ! c'est l'idée générale du programme que j'ai en tête
Pou continuer mes investigations , je cherche a affiché une variable sur le LCD en Binaire ?
j'ai beau réfléchir je ne vois pas trop comment faire ?
Le but étant de recouper avec le post de AchileT, et de faire un programme qui change un Bit d'une variable quand on appuie sur le BP correspondant et d'afficher cette variable en binaire . Ainsi je pourrais expliquer le champ de bit ! c'est l'idée générale du programme que j'ai en tête
LCD en serie + PIC 18F45K2
bonjour
On utilise des structures et union pour regrouper des variables ou des bits ( dans une fonction par exemple) qui interagissent entre elles .Faire attention les structures ne sont pas uniquement des BITS .On peut aussi utiliser des structures pour optimiser son code. par exemple utiliser 4 variables pour ne changer leur valeurs que de un ou de zéro, c'est plus rapide de passer par une structure de bits pourquoi: ->modification des bits bien plus court et plus rapide et l'on gagne 3 variables .Mais je ne sais pas si c'est le but des programmes en C la j'ai un DOUTE
Après a toi de voir.
Pour ton tuto je vois bien comme cela
une structure union ->positon
une variable -> affic
-Pour la modification des bits tu peux mettre chacun des 8 bits de structure position dans un test sur etat du bit correspondant du BP et positionner le fag position en fonction de cette état. le tout bien sur dans une boucle.
-Pour affichage faire un tableau de 8 variables affic valeurs des variables 0X30 ,dans une boucle une rotation a gauche de ta variable position puis additionner affic avec une valeur nul, cela va te donner 0X30+0+RETENU. si carry =1-> 0X31, sinon 0X30
A+
On utilise des structures et union pour regrouper des variables ou des bits ( dans une fonction par exemple) qui interagissent entre elles .Faire attention les structures ne sont pas uniquement des BITS .On peut aussi utiliser des structures pour optimiser son code. par exemple utiliser 4 variables pour ne changer leur valeurs que de un ou de zéro, c'est plus rapide de passer par une structure de bits pourquoi: ->modification des bits bien plus court et plus rapide et l'on gagne 3 variables .Mais je ne sais pas si c'est le but des programmes en C la j'ai un DOUTE
Après a toi de voir.
Pour ton tuto je vois bien comme cela
une structure union ->positon
une variable -> affic
-Pour la modification des bits tu peux mettre chacun des 8 bits de structure position dans un test sur etat du bit correspondant du BP et positionner le fag position en fonction de cette état. le tout bien sur dans une boucle.
-Pour affichage faire un tableau de 8 variables affic valeurs des variables 0X30 ,dans une boucle une rotation a gauche de ta variable position puis additionner affic avec une valeur nul, cela va te donner 0X30+0+RETENU. si carry =1-> 0X31, sinon 0X30
A+
LCD en serie + PIC 18F45K2
paulfjujo a écrit :bonsoir,Code : Tout sélectionner
j'ai du ecrire char *ptr; . Peut être que c'est trop court ?
ce doit etre parce que MikroC se l'a accaparé pour son propre usage !
avec un PIC18F8750 ..pas de rejet.. avec l'usage de char *p;
Bonjour,
tout comme il n'y aurait pas de rejet pour
Code : Tout sélectionner
char *schtroumpf;
schtroumpf, ptr ou p peu importe le nom, est un pointeur qui pointe vers une cellule mémoire de type char (donc 1 octet), c'est tout simple.
MikroC est ANSI donc conforme à la norme, ils ne s'accaparent rien dans cette écriture classique, ou bien je n'ai pas compris le sens de ta remarque.
@+
LCD en serie + PIC 18F45K2
- paulfjujo
Expert- Messages : 2589
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour
ma remarque parce que Jeremy signalait :
alors que personellement , je n'avais aucun compterendu sur ce genre de declaration
char *p;
je suis tout à fait d'accord que le nom d'un pointeur peut etre quelconque et de longueur variable
SAUF si il est semblable à des mots reservés par le compilo!
essaie avec
char *data;
293 396 Invalid declarator expected'(' or identifier ...
alors que
char *data1; passe sans probleme
ma remarque parce que Jeremy signalait :
7 393 'p' Identifier redefined Structure de bits.c
alors que personellement , je n'avais aucun compterendu sur ce genre de declaration
char *p;
je suis tout à fait d'accord que le nom d'un pointeur peut etre quelconque et de longueur variable
SAUF si il est semblable à des mots reservés par le compilo!
essaie avec
char *data;
293 396 Invalid declarator expected'(' or identifier ...
alors que
char *data1; passe sans probleme
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 39 invités