TFT_eSPI/TFT_Drivers/Basic_Rotation.h

44 lines
1.1 KiB
C

// This is the command sequence that rotates the ST7735/ILI9163/S6D02A1 driver coordinate frame
rotation = m % 4; // Limit the range of values to 0-3
writecommand(TFT_MADCTL);
switch (rotation) {
case 0:
writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_COLOR_ORDER);
_width = _width_orig;
_height = _height_orig;
#ifdef CGRAM_OFFSET
colstart = R0_OFFSET_X;
rowstart = R0_OFFSET_Y;
#endif
break;
case 1:
writedata(TFT_MAD_MY | TFT_MAD_MV | TFT_COLOR_ORDER);
_width = _height_orig;
_height = _width_orig;
#ifdef CGRAM_OFFSET
colstart = R1_OFFSET_X;
rowstart = R1_OFFSET_Y;
#endif
break;
case 2:
writedata(TFT_COLOR_ORDER);
_width = _width_orig;
_height = _height_orig;
#ifdef CGRAM_OFFSET
colstart = R2_OFFSET_X;
rowstart = R2_OFFSET_Y;
#endif
break;
case 3:
writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_COLOR_ORDER);
_width = _height_orig;
_height = _width_orig;
#ifdef CGRAM_OFFSET
colstart = R3_OFFSET_X;
rowstart = R3_OFFSET_Y;
#endif
break;
}