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.