setGraphMode()

Initialise les registres de l'écran et efface ce dernier. Il faut appeler cette fonction avant d'utiliser l'afficheur. En principe, on la met dans la fonction setup()

 

Exemples d'utilisation

setGraphMode(PAYSAGE); // Initialise l'écran en mode paysage
setGraphMode(PORTRAIT); // Initialise l'écran en mode portrait
setGraphMode(getGraphMode() + 1); // Change de mode

 

Référence

void setGraphMode(char orientation);

Paramètre passé

orientation: peut prendre les valeurs PAYSAGE, PORTRAIT, PAYSAGE_INVERSE ou PORTRAIT_INVERSE.

Valeur retournée

aucune

 

Voir aussi

- PAYSAGE Alimentation à gauche
- PORTRAIT Alimentation en haut
- PORTRAIT_INVERSE Alimentation en bas
- PAYSAGE_INVERSE Alimentation à droite
- getGraphMode(); Retourne PAYSAGE, PORTRAIT...
- graphMode Mode actuel
- clrscr(); Efface l'écran
- initSD(); Initialisation de la carte SD
- setTextOrient(); Direction d'écriture des textes
- setDrawInverse(); Choix du mode dessin ou inversion
- setLimites(); Limite la zone de affichée

 

Notes

Il est possible d'appeler plusieurs fois la fonction setGraphMode() dans un programme. A chaque fois, cela initialise l'écran et la bibliothèque. Cela permet de changer d'orientation.

Au départ du programme:
- les textes sont en taille 2, non gras, droits, avec empattements.
- le mode de remplissage est coccinelle

setGraphMode() se terminant par un clrscr(), après l'appel à setGraphMode(), l'écran est noir, les dessins et les textes sont en blanc par défaut et se dessineront en mode dessin, le curseur texte est mis en haut à gauche. setGraphMode() ne touche pas aux autres paramètres (taille, gras, italique, empattements, remplissage). Bien entendu, comme on peut changer l'orientation, les constantes de dimensions d'écrans sont remises à jour et les textes s'écriront vers l'est.

Dans le paramètre passé, seuls les 2 bits de poids faibles sont utilisés. setGraphMode(7); est donc équivalent à setGraphMode(3); on peut donc faire des boucles avec un char, un word... Par exemple setGraphMode(random(4)); donnera une orientation possible quelconque. Par contre le choix des valeurs numériques a été dictée par le contenu demandé d'un registre. Si je change de driver ou de version, je peux changer de valeurs. Il est donc très déconseillé d'utiliser les valeurs numériques autrement que pour un hasard. Dans la démo complète, j'utilise mode++; qui montrera les modes les uns à la suite des autres. Je me moque bien de la valeur, la seule chose qui m'intéresse est de parcourir tous les modes. Il est possible que dans une version future, les orientations ne soient plus dans l'ordre actuel.

 

Exemple

PecheuxGraph_ILI9341_8bits.zip\PecheuxGraph_ILI9341_8bits\examples\Documentation\Exemple-100-setGraphMode\Exemple-100-setGraphMode.ino (dans votre fichier téléchargé):

// Tant que l'initialisation de la carte n'est pas faite, il n'y a pas
// d'affichage et l'écran reste blanc. La ligne rouge n'est donc pas visible.
// La ligne verte étant faite après, elle  est affichée.
// Quand on demande le mode, il vaut mieux utiliser les constantes car elles
// sont indépendantes de la version. 

#
  $menu = ":PG";
  include <PecheuxGraph_ILI9341_8bits.h>

void setup()
{
  line(MAX_X, 0, 0, MAX_Y,RED); // Ligne non affichée car l'écran n'a pas été initialisé
  delay(3000); // Attente avant d'effacer l'écran au cas ou la ligne rouge serait visible
  
  setGraphMode(PAYSAGE); // Initialisation (avec effacement de l'écran)
  // A partir de maintenant, on peut dessiner ou écrire
  line(0, 0, MAX_X, MAX_Y, GREEN); // Ligne visible

  if (getGraphMode() == PORTRAIT) text("Portrait");
  if (getGraphMode() == PORTRAIT_INVERSE) text("Portrait inversé");
  if (graphMode == PAYSAGE) text("Paysage");
  if (graphMode == PAYSAGE_INVERSE) text("Paysage inversé");
}

void loop()
{
}

Résultat: