mirror of
https://github.com/YuzuZensai/MCUFRIEND_kbv.git
synced 2026-01-31 14:57:48 +00:00
delay in readReg() etc, add UC8230 init
This commit is contained in:
@@ -130,22 +130,6 @@ static uint16_t read16bits(void)
|
|||||||
return (ret << 8) | lo;
|
return (ret << 8) | lo;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t readReg40(uint16_t reg)
|
|
||||||
{
|
|
||||||
uint16_t h, m, l;
|
|
||||||
CS_ACTIVE;
|
|
||||||
WriteCmd(reg);
|
|
||||||
setReadDir();
|
|
||||||
CD_DATA;
|
|
||||||
h = read16bits();
|
|
||||||
m = read16bits();
|
|
||||||
l = read16bits();
|
|
||||||
RD_IDLE;
|
|
||||||
CS_IDLE;
|
|
||||||
setWriteDir();
|
|
||||||
return ((uint32_t) h << 24) | (m << 8) | (l >> 8);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t MCUFRIEND_kbv::readReg(uint16_t reg, int8_t index)
|
uint16_t MCUFRIEND_kbv::readReg(uint16_t reg, int8_t index)
|
||||||
{
|
{
|
||||||
uint16_t ret;
|
uint16_t ret;
|
||||||
@@ -156,6 +140,7 @@ uint16_t MCUFRIEND_kbv::readReg(uint16_t reg, int8_t index)
|
|||||||
WriteCmd(reg);
|
WriteCmd(reg);
|
||||||
setReadDir();
|
setReadDir();
|
||||||
CD_DATA;
|
CD_DATA;
|
||||||
|
delay(1); //1us should be adequate
|
||||||
// READ_16(ret);
|
// READ_16(ret);
|
||||||
do { ret = read16bits(); }while (--index >= 0); //need to test with SSD1963
|
do { ret = read16bits(); }while (--index >= 0); //need to test with SSD1963
|
||||||
RD_IDLE;
|
RD_IDLE;
|
||||||
@@ -166,19 +151,19 @@ uint16_t MCUFRIEND_kbv::readReg(uint16_t reg, int8_t index)
|
|||||||
|
|
||||||
uint32_t MCUFRIEND_kbv::readReg32(uint16_t reg)
|
uint32_t MCUFRIEND_kbv::readReg32(uint16_t reg)
|
||||||
{
|
{
|
||||||
uint16_t h, l;
|
uint16_t h = readReg(reg, 0);
|
||||||
CS_ACTIVE;
|
uint16_t l = readReg(reg, 1);
|
||||||
WriteCmd(reg);
|
|
||||||
setReadDir();
|
|
||||||
CD_DATA;
|
|
||||||
h = read16bits();
|
|
||||||
l = read16bits();
|
|
||||||
RD_IDLE;
|
|
||||||
CS_IDLE;
|
|
||||||
setWriteDir();
|
|
||||||
return ((uint32_t) h << 16) | (l);
|
return ((uint32_t) h << 16) | (l);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t MCUFRIEND_kbv::readReg40(uint16_t reg)
|
||||||
|
{
|
||||||
|
uint16_t h = readReg(reg, 0);
|
||||||
|
uint16_t m = readReg(reg, 1);
|
||||||
|
uint16_t l = readReg(reg, 2);
|
||||||
|
return ((uint32_t) h << 24) | (m << 8) | (l >> 8);
|
||||||
|
}
|
||||||
|
|
||||||
uint16_t MCUFRIEND_kbv::readID(void)
|
uint16_t MCUFRIEND_kbv::readID(void)
|
||||||
{
|
{
|
||||||
uint16_t ret, ret2;
|
uint16_t ret, ret2;
|
||||||
@@ -439,9 +424,6 @@ void MCUFRIEND_kbv::setRotation(uint8_t r)
|
|||||||
if (rotation == 1 || rotation == 2) {
|
if (rotation == 1 || rotation == 2) {
|
||||||
val ^= 0x08; // change BGR bit for LANDSCAPE and PORTRAIT_REV
|
val ^= 0x08; // change BGR bit for LANDSCAPE and PORTRAIT_REV
|
||||||
}
|
}
|
||||||
if (rotation == 1 || rotation == 2) {
|
|
||||||
_lcd_capable &= ~READ_BGR; //remove the attribute in LANDSCAPE, PORTRAIT_REV
|
|
||||||
} else _lcd_capable |= READ_BGR; //force the attribute in PORTRAIT, LANDSCAPE_REV
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (val & 0x08)
|
if (val & 0x08)
|
||||||
@@ -1777,9 +1759,59 @@ case 0x4532: // thanks Leodino
|
|||||||
*p16 = 320;
|
*p16 = 320;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#ifdef SUPPORT_8230
|
||||||
case 0x8230: //thanks Auzman
|
case 0x8230: //thanks Auzman
|
||||||
_lcd_capable = 0 | REV_SCREEN | INVERT_GS | INVERT_RGB;
|
_lcd_capable = 0 | REV_SCREEN | INVERT_GS | INVERT_RGB | READ_BGR;
|
||||||
goto common_9320;
|
static const uint16_t UC8230_regValues[] PROGMEM = {
|
||||||
|
//After pin Reset wait at least 100ms
|
||||||
|
TFTLCD_DELAY, 100, //at least 100ms
|
||||||
|
0x0046, 0x0002, //MTP Disable
|
||||||
|
0x0010, 0x1590,
|
||||||
|
0x0011, 0x0227,
|
||||||
|
0x0012, 0x80ff,
|
||||||
|
0x0013, 0x9c31,
|
||||||
|
TFTLCD_DELAY, 10, //at least 10ms
|
||||||
|
0x0002, 0x0300, //set N-line = 1
|
||||||
|
0x0003, 0x1030, //set GRAM writing direction & BGR=1
|
||||||
|
0x0060, 0xa700, //GS; gate scan: start position & drive line Q'ty
|
||||||
|
0x0061, 0x0001, //REV, NDL, VLE
|
||||||
|
/*--------------------Gamma control------------------------*/
|
||||||
|
0x0030, 0x0303,
|
||||||
|
0x0031, 0x0303,
|
||||||
|
0x0032, 0x0303,
|
||||||
|
0x0033, 0x0300,
|
||||||
|
0x0034, 0x0003,
|
||||||
|
0x0035, 0x0303,
|
||||||
|
0x0036, 0x1400,
|
||||||
|
0x0037, 0x0303,
|
||||||
|
0x0038, 0x0303,
|
||||||
|
0x0039, 0x0303,
|
||||||
|
0x003a, 0x0300,
|
||||||
|
0x003b, 0x0003,
|
||||||
|
0x003c, 0x0303,
|
||||||
|
0x003d, 0x1400,
|
||||||
|
//-----------------------------------------------------------//
|
||||||
|
0x0020, 0x0000, //GRAM horizontal address
|
||||||
|
0x0021, 0x0000, //GRAM vertical address
|
||||||
|
//************** Partial Display control*********************//
|
||||||
|
0x0080, 0x0000,
|
||||||
|
0x0081, 0x0000,
|
||||||
|
0x0082, 0x0000,
|
||||||
|
0x0083, 0x0000,
|
||||||
|
0x0084, 0x0000,
|
||||||
|
0x0085, 0x0000,
|
||||||
|
//-----------------------------------------------------------//
|
||||||
|
0x0092, 0x0200,
|
||||||
|
0x0093, 0x0303,
|
||||||
|
0x0090, 0x0010, //set clocks/Line
|
||||||
|
0x0000, 0x0001,
|
||||||
|
TFTLCD_DELAY, 200, // Delay 200 ms
|
||||||
|
0x0007, 0x0173, //Display on setting
|
||||||
|
};
|
||||||
|
init_table16(UC8230_regValues, sizeof(UC8230_regValues));
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
// goto common_9320;
|
||||||
case 0x5408:
|
case 0x5408:
|
||||||
_lcd_capable = 0 | REV_SCREEN | READ_BGR | INVERT_GS;
|
_lcd_capable = 0 | REV_SCREEN | READ_BGR | INVERT_GS;
|
||||||
goto common_9320;
|
goto common_9320;
|
||||||
|
|||||||
Reference in New Issue
Block a user