Bonjour à tous,
Je suis nouveau sur le forum. Je m'attaque à divers projets embarqués depuis quelques années, je connais plutôt bien le fonctionnement des microcontrôleurs mais beaucoup moins les subtilités de la programmation en langage C (pointeurs notamment...).
Bref, je me suis attaqué il y a quelques jours à un écran graphique 160x104 px monochrome.
La "brique" élémentaire affichage d'un octet, un "char" ( void WriteLCD(char c);) fonctionne correctement.
Les différentes fonctions qui permettent d'écrire sur le LCD utilisent "WriteLCD".
------------------
Mon problème :
------------------
J'ai écris une fonction WriteString qui prend en paramètre les coordonnées x, y (int) du point de départ où je souhaite écrire une string et la chaine en question :
void WriteString(int y, int x, char *word);
Lorsque j'appelle cette fonction :
Ex: WriteString(0, 0, "bonjour"); ça ne fonctionne pas... Je soupçonne une histoire de pointeur car je crois savoir que la manipulation des chaines de caractère est un peu particulière en langage C.
J'ai placé un point d'arrêt dans ma fonction, histoire de voir ce qu'elle reçoit et je n'y vois pas de tableau de char.
Je ne sais pas si j'ai été clair dans mes explications, ci-dessous la fonction exactement comme elle figure dans mon code :
1 2 3 4 5 6 7 8 9 10 11 12
| void WriteString(int y, int x, char *word){
int k;
int a = 0;
do{
k = word[a];
WriteLCD(y, x, k);
x = x + 7;
a++;
k = word[a];
}while(k != '\0');
} |
Merci pour votre aide, je m'arrache les cheveux...
Martin
Partager