TFT_eSPI/TFT_Drivers/ILI9163_Rotation.h

57 lines
1.2 KiB
C

// This is the command sequence that rotates the ILI9163 driver coordinate frame
rotation = m % 4;
writecommand(TFT_MADCTL);
switch (rotation) {
case 0:
writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_BGR);
_width = _width_orig;
_height = _height_orig;
#if CGRAM_OFFSET == OFFSET_FROM_START
colstart = 0;
rowstart = 32;
#else
colstart = 0;
rowstart = 0;
#endif
break;
case 1:
writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_BGR);
_width = _height_orig;
_height = _width_orig;
#if CGRAM_OFFSET == OFFSET_FROM_START
colstart = 32;
rowstart = 0;
#else
colstart = 0;
rowstart = 0;
#endif
break;
case 2:
writedata(TFT_MAD_BGR);
_width = _width_orig;
_height = _height_orig;
#if CGRAM_OFFSET == OFFSET_FROM_START
colstart = 0;
rowstart = 0;
#else
colstart = 0;
rowstart = 32;
#endif
break;
case 3:
writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_BGR);
_width = _height_orig;
_height = _width_orig;
#if CGRAM_OFFSET == OFFSET_FROM_START
colstart = 0;
rowstart = 0;
#else
colstart = 32;
rowstart = 0;
#endif
break;
}