void UTFT::InitLCD(byte orientation) { pinMode(__p1,OUTPUT); pinMode(__p2,OUTPUT); pinMode(__p3,OUTPUT); pinMode(__p4,OUTPUT); _set_direction_registers(display_transfer_mode); orient=orientation; _hw_special_init(); sbi(P_RST, B_RST); delay(5); cbi(P_RST, B_RST); delay(15); sbi(P_RST, B_RST); delay(15); switch(display_model) { #include "tft_drivers/ili9325c/initlcd.h" } setColor(255, 255, 255); setBackColor(0, 0, 0); cfont.font=0; _transparent = false; }
UTFT::UTFT(byte model, int RS, int WR, int CS, int RST, int SER) { word dsx[] = {239, 239, 239, 239, 239, 239, 175, 175, 239, 127, 127, 239, 271, 479, 239, 239, 239, 0, 0, 239, 479, 319, 239, 175, 127, 239, 239, 319, 319, 799, 127, 127,239,319,319}; word dsy[] = {319, 399, 319, 319, 319, 319, 219, 219, 399, 159, 127, 319, 479, 799, 319, 319, 319, 0, 0, 319, 799, 479, 319, 219, 159, 319, 319, 479, 479, 479, 159, 159,399,479,479}; byte dtm[] = {16, 16, 16, 8, 8, 16, 8, SERIAL_4PIN, 16, SERIAL_5PIN, SERIAL_5PIN, 16, 16, 16, 8, 16, LATCHED_16, 0, 0, 8, 16, 16, 16, 8, SERIAL_5PIN, SERIAL_5PIN, SERIAL_4PIN, 16, 16, 16, SERIAL_5PIN, SERIAL_5PIN,16,16,16}; disp_x_size = dsx[model]; disp_y_size = dsy[model]; display_transfer_mode = dtm[model]; display_model = model; __p1 = RS; __p2 = WR; __p3 = CS; __p4 = RST; __p5 = SER; if (display_transfer_mode == SERIAL_4PIN) { display_transfer_mode=1; display_serial_mode=SERIAL_4PIN; } if (display_transfer_mode == SERIAL_5PIN) { display_transfer_mode=1; display_serial_mode=SERIAL_5PIN; } if (display_transfer_mode!=1) { _set_direction_registers(display_transfer_mode); P_RS = portOutputRegister(digitalPinToPort(RS)); B_RS = digitalPinToBitMask(RS); P_WR = portOutputRegister(digitalPinToPort(WR)); B_WR = digitalPinToBitMask(WR); P_CS = portOutputRegister(digitalPinToPort(CS)); B_CS = digitalPinToBitMask(CS); P_RST = portOutputRegister(digitalPinToPort(RST)); B_RST = digitalPinToBitMask(RST); if (display_transfer_mode==LATCHED_16) { P_ALE = portOutputRegister(digitalPinToPort(SER)); B_ALE = digitalPinToBitMask(SER); cbi(P_ALE, B_ALE); pinMode(8,OUTPUT); digitalWrite(8, LOW); } } else { P_SDA = portOutputRegister(digitalPinToPort(RS)); B_SDA = digitalPinToBitMask(RS); P_SCL = portOutputRegister(digitalPinToPort(WR)); B_SCL = digitalPinToBitMask(WR); P_CS = portOutputRegister(digitalPinToPort(CS)); B_CS = digitalPinToBitMask(CS); if (RST != NOTINUSE) { P_RST = portOutputRegister(digitalPinToPort(RST)); B_RST = digitalPinToBitMask(RST); } if (display_serial_mode!=SERIAL_4PIN) { P_RS = portOutputRegister(digitalPinToPort(SER)); B_RS = digitalPinToBitMask(SER); } } }
UTFT::UTFT(byte model, int RS, int WR,int CS, int RST, int SER) { switch (model) { case HX8347A: disp_x_size=239; disp_y_size=319; display_transfer_mode=16; break; case ILI9327: disp_x_size=239; disp_y_size=399; display_transfer_mode=16; break; case SSD1289: disp_x_size=239; disp_y_size=319; display_transfer_mode=16; break; case ILI9325C: disp_x_size=239; disp_y_size=319; display_transfer_mode=8; break; case ILI9325D_8: disp_x_size=239; disp_y_size=319; display_transfer_mode=8; break; case ILI9325D_16: disp_x_size=239; disp_y_size=319; display_transfer_mode=16; break; case HX8340B_8: disp_x_size=175; disp_y_size=219; display_transfer_mode=8; break; case HX8340B_S: disp_x_size=175; disp_y_size=219; display_transfer_mode=1; display_serial_mode=SERIAL_4PIN; break; case HX8352A: disp_x_size=239; disp_y_size=399; display_transfer_mode=16; break; case ST7735: disp_x_size=127; disp_y_size=159; display_transfer_mode=1; display_serial_mode=SERIAL_5PIN; break; case PCF8833: disp_x_size=127; disp_y_size=127; display_transfer_mode=1; display_serial_mode=SERIAL_5PIN; break; case S1D19122: disp_x_size=239; disp_y_size=319; display_transfer_mode=16; break; case SSD1963_480: disp_x_size=271; disp_y_size=479; display_transfer_mode=16; break; case SSD1963_800: disp_x_size=479; disp_y_size=799; display_transfer_mode=16; break; case S6D1121_8: disp_x_size=239; disp_y_size=319; display_transfer_mode=8; break; case S6D1121_16: disp_x_size=239; disp_y_size=319; display_transfer_mode=16; break; case SSD1289LATCHED: disp_x_size=239; disp_y_size=319; display_transfer_mode=LATCHED_16; break; case ILI9320_8: disp_x_size=239; disp_y_size=319; display_transfer_mode=8; break; case ILI9320_16: disp_x_size=239; disp_y_size=319; display_transfer_mode=16; break; } display_model=model; if (display_transfer_mode!=1) { _set_direction_registers(display_transfer_mode); P_RS = portOutputRegister(digitalPinToPort(RS)); B_RS = digitalPinToBitMask(RS); P_WR = portOutputRegister(digitalPinToPort(WR)); B_WR = digitalPinToBitMask(WR); P_CS = portOutputRegister(digitalPinToPort(CS)); B_CS = digitalPinToBitMask(CS); P_RST = portOutputRegister(digitalPinToPort(RST)); B_RST = digitalPinToBitMask(RST); if (display_transfer_mode==LATCHED_16) { P_ALE = portOutputRegister(digitalPinToPort(SER)); B_ALE = digitalPinToBitMask(SER); pinMode(SER,OUTPUT); cbi(P_ALE, B_ALE); pinMode(8,OUTPUT); digitalWrite(8, LOW); } pinMode(RS,OUTPUT); pinMode(WR,OUTPUT); pinMode(CS,OUTPUT); pinMode(RST,OUTPUT); } else { P_SDA = portOutputRegister(digitalPinToPort(RS)); B_SDA = digitalPinToBitMask(RS); P_SCL = portOutputRegister(digitalPinToPort(WR)); B_SCL = digitalPinToBitMask(WR); P_CS = portOutputRegister(digitalPinToPort(CS)); B_CS = digitalPinToBitMask(CS); P_RST = portOutputRegister(digitalPinToPort(RST)); B_RST = digitalPinToBitMask(RST); if (display_serial_mode!=SERIAL_4PIN) { P_RS = portOutputRegister(digitalPinToPort(SER)); B_RS = digitalPinToBitMask(SER); pinMode(SER,OUTPUT); } pinMode(RS,OUTPUT); pinMode(WR,OUTPUT); pinMode(CS,OUTPUT); pinMode(RST,OUTPUT); } }
void UTFT::InitLCD(byte orientation) { orient=orientation; _hw_special_init(); pinMode(__p1,OUTPUT); pinMode(__p2,OUTPUT); pinMode(__p3,OUTPUT); if (__p4 != NOTINUSE) pinMode(__p4,OUTPUT); if ((display_transfer_mode==LATCHED_16) or ((display_transfer_mode==1) and (display_serial_mode==SERIAL_5PIN))) pinMode(__p5,OUTPUT); if (display_transfer_mode!=1) _set_direction_registers(display_transfer_mode); sbi(P_RST, B_RST); delay(5); cbi(P_RST, B_RST); delay(15); sbi(P_RST, B_RST); delay(15); cbi(P_CS, B_CS); switch(display_model) { #ifndef DISABLE_HX8347A #include "tft_drivers/hx8347a/initlcd.h" #endif #ifndef DISABLE_ILI9327 #include "tft_drivers/ili9327/initlcd.h" #endif #ifndef DISABLE_SSD1289 #include "tft_drivers/ssd1289/initlcd.h" #endif #ifndef DISABLE_ILI9325C #include "tft_drivers/ili9325c/initlcd.h" #endif #ifndef DISABLE_ILI9325D #include "tft_drivers/ili9325d/default/initlcd.h" #endif #ifndef DISABLE_ILI9325D_ALT #include "tft_drivers/ili9325d/alt/initlcd.h" #endif #ifndef DISABLE_HX8340B_8 #include "tft_drivers/hx8340b/8/initlcd.h" #endif #ifndef DISABLE_HX8340B_S #include "tft_drivers/hx8340b/s/initlcd.h" #endif #ifndef DISABLE_ST7735 #include "tft_drivers/st7735/std/initlcd.h" #endif #ifndef DISABLE_ST7735_ALT #include "tft_drivers/st7735/alt/initlcd.h" #endif #ifndef DISABLE_PCF8833 #include "tft_drivers/pcf8833/initlcd.h" #endif #ifndef DISABLE_S1D19122 #include "tft_drivers/s1d19122/initlcd.h" #endif #ifndef DISABLE_HX8352A #include "tft_drivers/hx8352a/initlcd.h" #endif #ifndef DISABLE_SSD1963_480 #include "tft_drivers/ssd1963/480/initlcd.h" #endif #ifndef DISABLE_SSD1963_800 #include "tft_drivers/ssd1963/800/initlcd.h" #endif #ifndef DISABLE_SSD1963_800_ALT #include "tft_drivers/ssd1963/800alt/initlcd.h" #endif #ifndef DISABLE_S6D1121 #include "tft_drivers/s6d1121/initlcd.h" #endif #ifndef DISABLE_ILI9481 #include "tft_drivers/ili9481/initlcd.h" #endif #ifndef DISABLE_S6D0164 #include "tft_drivers/s6d0164/initlcd.h" #endif #ifndef DISABLE_ST7735S #include "tft_drivers/st7735s/initlcd.h" #endif #ifndef DISABLE_ILI9341_S4P #include "tft_drivers/ili9341/s4p/initlcd.h" #endif #ifndef DISABLE_ILI9341_S5P #include "tft_drivers/ili9341/s5p/initlcd.h" #endif #ifndef DISABLE_R61581 #include "tft_drivers/r61581/initlcd.h" #endif #ifndef DISABLE_ILI9486 #include "tft_drivers/ili9486/initlcd.h" #endif #ifndef DISABLE_CPLD #include "tft_drivers/cpld/initlcd.h" #endif #ifndef DISABLE_HX8353C #include "tft_drivers/hx8353c/initlcd.h" #endif } sbi (P_CS, B_CS); setColor(255, 255, 255); setBackColor(0, 0, 0); cfont.font=0; _transparent = false; }
UTFT::UTFT(byte model, int RS, int WR,int CS, int RST, int SER) { switch (model) { case ILI9327: disp_x_size=239; disp_y_size=399; display_transfer_mode=16; break; case HX8352A: disp_x_size=239; disp_y_size=399; display_transfer_mode=16; break; } display_model=model; if (display_transfer_mode!=1) { _set_direction_registers(display_transfer_mode); P_RS = portOutputRegister(digitalPinToPort(RS)); B_RS = digitalPinToBitMask(RS); P_WR = portOutputRegister(digitalPinToPort(WR)); B_WR = digitalPinToBitMask(WR); P_CS = portOutputRegister(digitalPinToPort(CS)); B_CS = digitalPinToBitMask(CS); P_RST = portOutputRegister(digitalPinToPort(RST)); B_RST = digitalPinToBitMask(RST); if (display_transfer_mode==LATCHED_16) { P_ALE = portOutputRegister(digitalPinToPort(SER)); B_ALE = digitalPinToBitMask(SER); pinMode(SER,OUTPUT); cbi(P_ALE, B_ALE); pinMode(8,OUTPUT); digitalWrite(8, LOW); } pinMode(RS,OUTPUT); pinMode(WR,OUTPUT); pinMode(CS,OUTPUT); pinMode(RST,OUTPUT); } else { P_SDA = portOutputRegister(digitalPinToPort(RS)); B_SDA = digitalPinToBitMask(RS); P_SCL = portOutputRegister(digitalPinToPort(WR)); B_SCL = digitalPinToBitMask(WR); P_CS = portOutputRegister(digitalPinToPort(CS)); B_CS = digitalPinToBitMask(CS); P_RST = portOutputRegister(digitalPinToPort(RST)); B_RST = digitalPinToBitMask(RST); if (display_serial_mode!=SERIAL_4PIN) { P_RS = portOutputRegister(digitalPinToPort(SER)); B_RS = digitalPinToBitMask(SER); pinMode(SER,OUTPUT); } pinMode(RS,OUTPUT); pinMode(WR,OUTPUT); pinMode(CS,OUTPUT); pinMode(RST,OUTPUT); } }