Bonjour,

Alors voilà mon problème: je programme en c sur un module assez atypique (module rovin) et je suis en train d'essayer de coder la gestion d'un afficheur LCD.

Si je veux écrire un mot sur l'afficheur je doit envoyer les carratères les un après les autres.

Pour l'instant j'ai écrit une fonction bien bourrin qui fonctionne mais qui est très peu pratique à utiliser. Ça donne ça:

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
void MotToLCD(unsigned char L1, unsigned char L2, unsigned char L3, unsigned char L4, unsigned char L5, unsigned char L6, unsigned char L7, unsigned char L8, unsigned char L9, unsigned char L10, unsigned char L11, unsigned char L12, unsigned char L13, unsigned char L14, unsigned char L15, unsigned char L16)
{
I2cStart(1);
I2cOut(1,EcranADR);
I2COut(1,L1);
I2COut(1,L2);
I2COut(1,L3);
I2COut(1,L4);
I2COut(1,L5);
I2COut(1,L6);
I2COut(1,L7);
I2COut(1,L8);
I2COut(1,L9);
I2COut(1,L10);
I2COut(1,L11);
I2COut(1,L12);
I2COut(1,L13);
I2COut(1,L14);
I2COut(1,L15);
I2COut(1,L16);
I2CStop(1);
}
et j'utilise cette horreur ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MotToLCD('B','o','n','j','o','u','r',' ','a',' ','t','o','u','s','!',' ');
Ce qui est vraiment pas pratique du tout.

Au final j'aimerais donc avoir un truc du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MotToLCD('Bonjour a tous!');
Je me suis dit que j'allais placer tout les carractères dans un tableau de 16 lignes (mon afficheur ne peut afficher que 16 carractères). puis envoyer tout ça via une boucle. J'ai donc bricoler un programme de test qui fonctionne bien:

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
 
TableLCD[0] = 'c';
TableLCD[1] = 'o';
TableLCD[2] = 'u';
TableLCD[3] = 'c';
TableLCD[4] = 'o';
TableLCD[5] = 'u';
x=0;
 
I2cStart(1);
I2cOut(1,EcranADR);
for (x=0; x<=15; x++)
{
I2cOut(1,TableLCD[x]);
}
I2CStop(1);
Je sens que je suis sur la bonne piste mais je n'arrive pas à trouver comment placer une chaine dans ce tableau. Une Idée ?