writeData16()
Permet d'écrire deux octets de donnée dans le driver
Exemples d'utilisation
writeRegister(0x37); writeData16(0x01); // Décale l'écran d'une ligne pour un ili9341
Référence
void Data16(word donnee);
Paramètre passé
donnee: donnée à écrire
Valeur retournée
Aucune
Voir aussi
- writeRegister() Écrit un octet dans un des registres de l'afficheur
- writeData8() Écrit un octet de donnée dans l'afficheur
- readData8Bits() Lit un octet de donnée de l'afficheur
Notes
Ces fonctions permettent de tout faire concernant l'afficheur, quel que soit le driver présent. En programmant directement les registres des drivers, tout est disponible.
Exemple
PecheuxGraph_ILI9341_8bits.zip\PecheuxGraph_ILI9341_8bits\examples\Documentation\Exemple-601-writeData16\Exemple-601-writeData16.ino (dans votre fichier téléchargé):
Version ILI9341, le ST7781 n'a pas cette fonction de décalage.
// Ce programme montre qu'avec les fonctions de bas niveau, on arrive à d'autres les possibilités du driver # $menu = ":PG"; include <PecheuxGraph_ILI9341_8bits.h> const long attente = 6; // Attente entre deux décalages word decalage=1; // Décalage de l'écran void setup() { setGraphMode(PAYSAGE); // Obligatoire pour utiliser l'afficheur // Dessin de l'avion if (bmpDraw("DEMOS/avion.bmp") > 0) // Photo d'un avion { // Photo non trouvée, on fait un dessin clrscr(STEEL_BLUE); // Ciel // Définition des lignes de l'avion arc(121, 83, 7, DEPART_SUD + ARRIVEE_NORD, BLACK); // Cokpit line(118, 81, 121, 78); lineTo(121, 81); lineTo(118, 81); hLine(121, 198, 76); // Fuselage arc(198, 80, 4, DEPART_NORD + ARRIVEE_SUD); line(195, 84, 162, 89); line(121, 90, 150, 89); line(134, 76, 118, 53); // Aile droite lineTo(147, 76); line(140, 84, 184, 110); // Aile gauche lineTo(156, 83); line(188, 76, 211, 64); // Empennage lineTo(198, 76); line(192, 80, 200, 88); lineTo(196, 79); // Peinture de l'avion fill(127, 81, WHITE); // Fuselage fill(137, 72, WHITE); // Aile fill(196, 74, WHITE); // Empenage } } void loop() { // Décalage de l'écran if (graphMode == PAYSAGE) { writeRegister(0x37); writeData16(decalage++); // Décalage vertical pour un ili9341 if (decalage == LARGEUR) decalage = 0; // Décalage complet d'un écran, on repart à 0 } else if (graphMode == PAYSAGE_INVERSE) { writeRegister(0x37); writeData16(--decalage); // Décalage vertical pour un ili9341 if (decalage == 0) decalage = LARGEUR; // Décalage complet d'un écran, on repart à 0 Serial.println(decalage); delay(10); } // Vitesse de l'avion delay(attente); }
Côté technique
L'accès aux registres permet d'utiliser des fonctionnalités qui ne sont pas prévues dans la bibliothèque. On peut par exemple accéder au couleurs 18 bits, au mode 8 bits, enregistrer et lire des valeur en EEPROM du driver (3 octets max sur un ST7781), voir les codes du constructeur...
Pour programmer le driver de l'afficheur, il faut envoyer la valeur d'un registre par writeRegister(), envoyer éventuellement des paramètres par writeData8() ou writeData16(), ou lire une ou plusieurs valeurs par readData8Bits(). Bien entendu, il est indispensable d'avoir la documentation du driver.
Ces fonctions sont les fonctions de base de la bibliothèque.