Bonjour,

Mon programme fonctionne avec un pic 18f2525 doit afficher des angles à partir d'un capteur. J'ai réalisé déjà toute la partie acquisition, affichage et mesure des angles et je sauvegarde les mesures dans l'EEPROM. Le programme enregistrement et affichage des valeurs contenues dans l'EEPROM fonctionne. Mon problème se situe plus au niveau de l'écran LCD en fait. Je souhaite faire défiler le texte de gauche a droite parce que je n'ai pas réussi à faire afficher les valeurs une à une quand je demande l'affichage il m'affiche toutes les valeurs contenue dans l'EEPROM les une à la suite des autres.
J'ai vu su le net qu'il existait une bibliothèque XLCD avec déjà toutes ces fonctions mais je n'arrive pas à reprogrammer celle qui permet de faire défiler le texte. Je suis obliger de la reprogrammer parce que comme je reprend un code existant et que la personne à recréer une bonne parties des fonctions contenues dans cette bibliothèque de ce que j'ai pu voir alors je dois moi aussi la reprogrammer.

voila mon code pour enregistrer les valeurs

char valeur_lue=0;
unsigned int compteur_valeur=0;
int adresse_debut;
void enregistrer_valeur_dans_eeprom (void)
{
extern ram volatile int valeur_angle_afficheur;
extern ram volatile int valeur_angle_afficheur_1;
extern ram volatile int valeur_angle_afficheur_2;
int taille_chaine_tampon2=0,i ;
char tampon2[19];
unsigned int compteur_eeprom=0;


sprintf(tampon2,"V%d=%d-%d-%d/",compteur_valeur,valeur_angle _afficheur_1,valeur_angle_affi cheur_2,valeur_angle_afficheur );
do
{
valeur_lue=eeplit(compteur_eep rom);
adresse_debut=compteur_eeprom;
compteur_eeprom++;
}while(valeur_lue!='a');
taille_chaine_tampon2 = strlen(tampon2);
for( i=0;i<=taille_chaine_tampon2;i ++)
{
eepecr(adresse_debut+i,tampon2[i]);
}
compteur_valeur++;
}

Voici celui qui permet d'afficher les valeurs contenues dans l'
eeprom:


int afficher_valeur(int argc,char **argv)
{

unsigned int compteur_tampon3=0;
int taille_chaine_tampon3=0;
char tampon3[100];
int adresse_debut=0x00;

do{
valeur_lue=eeplit(adresse_debu t);
if(valeur_lue!='a')
{
do{
valeur_lue=eeplit(adresse_debu t);
adresse_debut++;
tampon3[compteur_tampon3]=valeur_lue;
compteur_tampon3++;
}while(valeur_lue!='/');
}
taille_chaine_tampon3 = myStrlen(tampon3);
sprintf(ligne_test,"%s",tampon 3);
EcritUneLigne_LCD_MODE_4_BITS( ligne_test,deuxieme_ligne);
Delay10KTCYx(200); // 1s
Delay10KTCYx(200); // 1s
adresse_debut++;
}while(valeur_lue!='a');

}

merci pour votre aide