readData8()
Permet de lire un octet de donnée du driver
Exemples d'utilisation
writeRegister(0xD3); readData8(); readData8(); num=(readData8()<<8)+readData8(); // Lecture du l'Id du driver ILI9341
Référence
byte readData8(void);
Paramètre passé
aucun
Valeur retournée
l'octet lu
Voir aussi
- writeRegister() Écrit un octet dans un des registres de l'afficheur
- writeData8() Écrit un octet de donnée dans l'afficheur
- writeData16() Écrit un word de donnée dans 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.
Exemples
PecheuxGraph_ILI9341_8bits.zip\PecheuxGraph_ILI9341_8bits\examples\Documentation\Exemple-600-readData8\Exemple-600-readData8.ino (dans votre fichier téléchargé), version ILI9341:
// Ce programme montre qu'avec les fonctions de bas niveau, on arrive à toutes les possibilités du driver # $menu = ":PG"; include <PecheuxGraph_ILI9341_8bits.h> void setup() { setGraphMode(PAYSAGE); // Obligatoire pour utiliser l'afficheur // Affichage d'un fond d'écran. En BPX parce que cela va plus vite. bpxDraw("320x240/1.bpx",0,0)* // Affiché seulement en mode paysage bpxDraw("240x320/20.bpx",0,0) // Affiché seulement en mode portrait} !=0) // On n'a pas pu dessiner une image, on dessin n'importe quoi for (int y=0; y<HAUTEUR; y+=10) for (int x=0; x<LARGEUR; x+=10) fillRect(x, y, x+10, y+10, random(WHITE)); // Un premier exemple d'accès aux registres de l'afficheur: lecture du code du pilote setTextSize(9); setTextBold(4); // Ecrire en gros setTextCursor(DEMI_LARGEUR-180/2, // 4 caractères font en moyenne 4*5*setTextSize=180 de large, on les met au centre DEMI_HAUTEUR-63/2); // Les caractères font 7*setTextSize=63 de haut, mis au centre writeRegister(0xD3); // Envoi de la commande D3 (ID code?) readData8(); // Première valeur non valide readData8(); // Valeur nulle text(String(readData8(), HEX)); // Poids forts à lire à lire (en hexadécimal!) text(String(readData8(), HEX)); // Poids faibles à lire à lire (en hexadécimal!) } void loop() { // Un deuxième exemple d'accès aux registres de l'afficheur writeRegister(0x21); // Display Inversion ON (21h), inversion des couleurs delay(2000); writeRegister(0x20); // Display Inversion OFF (20h), couleurs normales delay(2000); }
PecheuxGraph_ST7781_8bits.zip\PecheuxGraph_ST7781_8bits\examples\Documentation\Exemple-600-readData8\Exemple-600-readData8.ino (dans votre fichier téléchargé), version ST7781:
// Ce programme montre qu'avec les fonctions de bas niveau, on arrive à toutes les possibilités du driver # $menu = ":PG"; include <PecheuxGraph_ST7781_8bits.h> void setup() { setGraphMode(PAYSAGE); // Obligatoire pour utiliser l'afficheur // Affichage d'un fond d'écran. En BPX parce que cela va plus vite. if ( bpxDraw("320x240/1.bpx",0,0)* // Affiché seulement en mode paysage bpxDraw("240x320/20.bpx",0,0) // Affiché seulement en mode portrait} !=0) // On n'a pas pu dessiner une image, on dessin n'importe quoi for (int y=0; y<HAUTEUR; y+=10) for (int x=0; x<LARGEUR; x+=10) fillRect(x, y, x+10, y+10, random(WHITE)); // Un premier exemple d'accès aux registres de l'afficheur: lecture du code du pilote byte pilote1, pilote2; // ID du pilote setTextSize(9); setTextBold(4); // Ecrire en gros setTextCursor(DEMI_LARGEUR-180/2, // 4 caractères font en moyenne 4*5*setTextSize=180 de large, on les met au centre DEMI_HAUTEUR-63/2); // Les caractères font 7*setTextSize=63 de haut, mis au centre writeRegister(0x00); // Envoi de la commande 00 (ID code?) // Lecture préalable des codes, text() faisant appels aux registres readData8(); // Première valeur non valide pilote1=readData8(); // Poids faibles à lire à lire pilote2=readData8(); // Poids forts à lire à lire text(String(pilote2, HEX)); // Poids forts en hexadécimal! text(String(pilote1, HEX)); // Poids faibles en hexadécimal! } void loop() { // Un deuxième exemple d'accès aux registres de l'afficheur writeRegister(0x07); // Idle Mode OFF = Mode 8 couleurs OFF writeData16(0x0133); delay(2000); writeRegister(0x07); // Idle Mode ON = Mode 8 couleurs ON writeData16(0x013B); delay(2000); }
Résultat:

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 mémoire du driver (3 octets max), 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 readData8(). Bien entendu, il est indispensable d'avoir la documentation du driver.
Ces fonctions sont les fonctions de base de la bibliothèque.