Dans le fichier ST7789_t3.cpp, vous trouverez la fonction setRotation.
Code:
void ST7789_t3::setRotation(uint8_t m)
{
débutSPITransaction();
writecommand(ST7735_MADCTL);
rotation = m % 4; // ne peut pas être supérieur à 3
commutateur (rotation) {
cas 0 :
écriredata_last(ST77XX_MADCTL_MX | ST77XX_MADCTL_MY | ST77XX_MADCTL_RGB);
_xstart = _colstart;
_ystart = _rowstart;
_largeur = _largeurécran;
_hauteur = _hauteurécran;
casser;
cas 1 :
écriredata_last(ST77XX_MADCTL_MY | ST77XX_MADCTL_MV | ST77XX_MADCTL_RGB);
_xstart = _rowstart;
_ystart = _colstart2;
_hauteur = _largeurécran;
_largeur = _hauteurécran;
casser;
cas 2 :
écriredata_last(ST77XX_MADCTL_RGB);
_xstart = _colstart2;
_ystart = _rowstart2;
_largeur = _largeurécran;
_hauteur = _hauteurécran;
casser;
cas 3 :
écriredata_last(ST77XX_MADCTL_MX | ST77XX_MADCTL_MV | ST77XX_MADCTL_RGB);
_xstart = _rowstart2;
_ystart = _colstart;
_hauteur = _largeurécran;
_largeur = _hauteurécran;
casser;
}
_rot = m;
endSPITransaction();
// Serial.printf("Définir la rotation %d départ (%d %d) ligne : %d, colonne : %d\n", m, _xstart, _ystart, _rowstart, _colstart);
définirClipRect();
définirOrigine();
curseur_x = 0 ;
curseur_y = 0 ;
}
Vous constaterez que le registre ST7735_MADCTL est mis à jour en fonction de la rotation. Vous verrez ici qu'il configure
la valeur comme pour le cas 0 : ST77XX_MADCTL_MX | ST77XX_MADCTL_MY | ST77XX_MADCTL_RGB
Les valeurs des paramètres tels que : ST77XX_MADCTL_MY sont définies directement dans ce fichier. Les registres sont définis dans le
Fichier ST7735_t3.h.
Que sont définis ces différents réglages MX, MY... dans le manuel de référence du ST7789 ?
Vous pouvez télécharger le fichier à partir de plusieurs sites. Celui que je viens de consulter :
Vous trouverez ces valeurs affichées à plusieurs endroits, comme page : 167(RDDST)
215(MADCTL)