Bonjour,
ça fait pratiquement tte l'après-midi que j'essaie de débugger mon programme mais en vain! voici le code:
Dans un fichier.h:
Dans un fichier.c:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 extern struct Liste { char ss_Liste[4][21]; } LISTE; extern const char Sous_MENU_LISTE[18][21] ;
en fait j'ai créé un sous menu qui contient 18 lignes de topics, et vu que mon LCD est un 4*20alors j'ai créé la structure qui prendra à chaque fois 4 éléments pour les envoyé par l'intermédiaire de la fonction d'affichage sur l'écran. voici le code de la fonction qui permet d'attribuer à cette structure le sous menu:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void Affichage_structure_chaine_CGRAM_DDRAM ( Liste structure , unsigned char adr_ecran) { mLCDPutCmd(adr_ecran); // c'est une macro permettant d'afficher sur un LCD à la position voulu sur l'écran , elle est déclarée ailleurs dans le projet (en global).. pointeur_ss_menu = &structure; // il pointe sur la structure de chaine de char à afficher, il est déclaré ailleurs dans le projet (en global).. }
si vs n'arrivez pas à interpreter des ligne c'est normal car les détails figurent ailleurs concernant les macros que j'utilise..mais l'essenciel c'est que le compilateur m'envoie cette erreur: "error: syntax error before 'structure'", erreur correspondant au paramètre d'entrée de la fonction d'affichage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 /***************************************************************************** * Fonction: Attrib_Liste_Sous_MENU() * entrees: int compteur de positionnement, unsigned int direction (haut ou bas) * sorties: pointeur sur les 4 lignes de char à afficher *****************************************************************************/ struct * Attrib_Liste_Sous_MENU(int cnt_pos_ss_menu, unsigned int direction){ unsigned char index; unsigned char ligne_ecran; unsigned char colonne_ecran; int increment_pos_ss_menu; unsigned char nb_lignes_clignotement; int Bouton; if (BtnIsPressed(Bp_DEFILER_HAUT)) { Bouton = Bp_DEFILER_HAUT; } else if (BtnIsPressed(Bp_DEFILER_BAS)) { Bouton = Bp_DEFILER_BAS; } direction = _button_press.bBouton ; switch (index){ case 1: case 4: case 8: case 10: case 14: case 16: increment_pos_ss_menu = 2; nb_lignes_clignotement = 2; break; default: increment_pos_ss_menu = 1; nb_lignes_clignotement = 1; break; } switch(direction) { case Bp_DEFILER_HAUT: if (cnt_pos_ss_menu>0){ cnt_pos_ss_menu - increment_pos_ss_menu; }else { cnt_pos_ss_menu = 17; } case Bp_DEFILER_BAS: if (cnt_pos_ss_menu<17){ cnt_pos_ss_menu + increment_pos_ss_menu; }else { cnt_pos_ss_menu = 0; } } for (ligne_ecran= 0; ligne_ecran <=3 ; ligne_ecran++) { for (colonne_ecran= 0; colonne_ecran <=21 ; colonne_ecran++) { LISTE.ss_Liste[ligne_ecran][colonne_ecran] = Sous_MENU_LISTE[cnt_pos_ss_menu+ligne_ecran ][colonne_ecran]; } } pointeur_ss_menu = &LISTE; return pointeur_ss_menu; }
ps: - je travaille sur un PIC24FJ128GA010 et j'utilise la version8.10 de MPLAB
- j'ai déjà essayé de mettre "struct" à la place de "Liste" dans le paramètre d'entrée de la fonction d'affichage, mais ça ne marche pas non plus.
merci de m'aider pcq je ne vois plus rien!!







Répondre avec citation









Partager