MCUFRIEND_kbv Library for Uno 2.4, 2.8, 3.5, 3.6, 3.95 inch mcufriend Shields

Hi David,

I have downloaded the test_NANO33BLE branch on github and extended delays in the driver as you suggested:

#define WRITE_DELAY { WR_ACTIVE4; }   //M4F @ 60MHz
#define IDLE_DELAY  { WR_IDLE2; }
#define READ_DELAY  { RD_ACTIVE16; RD_ACTIVE; }

I have also upgraded to an external power supply. The results of running the "LCD_ID_ReadReg" and "diagnose_TFT_support" are attached.

I think I have a rough understanding of the macros in the driver block, but don't fully understand the "read_8()" macro. Should it not be something like?:

#define read_8()   ((((NRF_P0->IN & (1<<21)) >> 21) \ 
                   | ((NRF_P0->IN & (1 << 27)) >> 26) \
                   | ((NRF_P1->IN & (1 << 11)) >> 9) \
                   | ((NRF_P1->IN & (1 << 12)) >> 9) \
                   | ((NRF_P1->IN & (1 << 15)) >> 11) \
                   | ((NRF_P1->IN & (1 << 13)) >> 8) \
                   | ((NRF_P1->IN & (1 << 14)) << 8) \
                   | ((NRF_P0->IN & (1 << 23)) << 16)))

rather than:

#define read_8()   ((((NRF_P0->IN & (1<<3)) >> 3) \
                   | ((NRF_P0->IN & (1 << 3)) >> 2) \
                   | ((NRF_P1->IN & (1 << 0)) << 2) \
                   | ((NRF_P1->IN & (1 << 12)) >> 9) \
                   | ((NRF_P1->IN & (1 << 13)) >> 9) \
                   | ((NRF_P1->IN & (1 << 7)) >> 2) \
                   | ((NRF_P1->IN & (1 << 4)) << 2) \
                   | ((NRF_P0->IN & (1 << 2)) << 5)))

I'm presuming the data being read is in the same order as the data being written e.g. data[0] corresponds to D0 (P0.21)

diagnose_TFT_suuport_results.txt (39 Bytes)

LCD_ID_Readreg_RESULTS.txt (1.55 KB)