Please run this sketch:
#include <Adafruit_GFX.h> // Hardware-specific library
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;
// Assign human-readable names to some common 16-bit color values:
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
void drawboxatxy(int x, int y, int w, int h, uint16_t color)
{
tft.drawRect(x, y, w, h, WHITE);
tft.fillRect(x + 1, y + 1, w - 2, h - 2, color);
tft.setTextSize(1);
tft.setCursor(x + 3, y + 3);
tft.print(x);
tft.print(",");
tft.print(y);
tft.setTextSize(4);
tft.setCursor(x + 3, y + 12);
tft.print("F");
}
void setmadctl(uint8_t val, const char *msg)
{
tft.pushCommand(0x36, &val, 1);
tft.println(msg);
delay(5000);
}
void setup()
{
uint8_t pixfmt = 0x55;
Serial.begin(9600);
uint16_t ID = tft.readID();
// tft.begin(0x6814);
tft.begin(ID);
if (ID != 0x6814) tft.pushCommand(0x3A, &pixfmt, 1);
tft.setTextColor(WHITE);
}
int aspect = 0;
const char *aspectname[] = {
"PORTRAIT", "LANDSCAPE", "PORTRAIT_REV", "LANDSCAPE_REV"
};
void loop()
{
if (++aspect > 3) aspect = 0;
tft.setRotation(aspect);
uint8_t current = tft.readReg(0x0B); //RDMADCTL
uint8_t a[6]; //buffer for data arguments
int wid = tft.width();
int ht = tft.height();
tft.fillScreen(BLACK);
drawboxatxy(0 + 48, 0 + 48, 48, 48, RED); //tlhc
drawboxatxy(wid - 96, 0 + 48, 48, 48, GREEN); //trhc
drawboxatxy(0 + 48, ht - 96, 48, 48, BLUE); //blhc
drawboxatxy(wid - 96, ht - 96, 48, 48, MAGENTA); //brhc
tft.setTextSize(2);
tft.setCursor(0, 100);
tft.println(aspectname[aspect]);
delay(5000);
setmadctl(current | 0x01, "Vertical Flip");
setmadctl(current | 0x02, "Horizontal Flip");
setmadctl(current ^ 0x40, "Invert MX");
setmadctl(current ^ 0x80, "Invert MY");
}
You should either see coloured boxes move and/or text appear mirrored.
If you can take video it would be helpful but JPEGs are ok. If you do a video, you can reduce the delays down to a few milliseconds to make a "short" video. I can single step the video on the PC.
Please understand that I do not own a readable RM68140. So any code can only be written with the help of a remote owner.
David.