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:
