Go Down

Topic: Problème caractère ASCII écran LCD (Read 612 times) previous topic - next topic

Flamby

Bonjour,

Donc j'ai un problème avec l'affichage des caractères ASCII spéciaux. J'utilise un écran avec un ILI9340C et la librairie Adafruit_GFX et Adafruit_ILI9340.

Donc l'affichage des caractères ASCII de base ( les 127 premiers) pas de problème mais les autres rien ne va plus. J'ai regarder divers explications mais aucune ne fonctionne pour mon cas.

Voilà ma fonction d'affichage
Code: [Select]
int Affichage_Texte(String msg, short ligne, short align){
  if(Mode_Debug == false){
    short i_align = TXT_DROITE;
    if(ligne != 0)
      Effacer_Ligne(ligne);
   
    if(align == TXT_CENTRER)
      i_align = 160 - ((msg.length() / 2) * 12);
    else if(align == TXT_GAUCHE)
      i_align = 320 - (msg.length() * 12);
    else
      i_align = TXT_DROITE;
   
    EcranTFT.setCursor(i_align, ligne * 15);
    EcranTFT.print(msg);
  }
  else{
    Serial.println(msg);
  }
}


Si quelqu'un a une solution, je suis preneur.

Merci d'avance

fdufnews

#1
Jun 15, 2015, 01:56 pm Last Edit: Jun 15, 2015, 02:00 pm by fdufnews
Rien ne va plus, c'est-à-dire?

Tu nous fais voir ta fonction d'affichage. Est-ce que cela veut dire que EcranTFT.print(msg); seule fonctionne correctement?

Ne pas perdre de vue aussi que l'IDE force l'encodage des chaînes de caractères en UTF8 (de mémoire je n'ai pas revérifié, il y a eu une discussion sur le forum à ce sujet) et que donc cela joue des tours pour tous les caractères spéciaux. Préférer, même si c'est contraignant, les séquences \xxx pour placer des caractères particuliers dans les chaînes de caractères.

Flamby

Oui la fonction EcranTFT.print(msg); fonction nickel sauf pour les caractères spéciaux comme é, â, è, ê, ...

Go Up