@@ -255,6 +255,7 @@ void board_display_init(void) {
255255 nrf_gpio_pin_clear (DISPLAY_PIN_RST );
256256 NRFX_DELAY_MS (10 );
257257 nrf_gpio_pin_set (DISPLAY_PIN_RST );
258+ NRFX_DELAY_MS (20 );
258259#endif
259260
260261#if defined(DISPLAY_PIN_BL ) && DISPLAY_PIN_BL >= 0
@@ -698,6 +699,7 @@ void neopixel_write (uint8_t *pixels) {
698699#define ST77XX_TEOFF 0x34
699700#define ST77XX_TEON 0x35
700701#define ST77XX_MADCTL 0x36
702+ #define ST77XX_VSCSAD 0x37
701703#define ST77XX_COLMOD 0x3A
702704
703705#define ST77XX_MADCTL_MY 0x80
@@ -725,23 +727,27 @@ void neopixel_write (uint8_t *pixels) {
725727static void tft_controller_init (void ) {
726728 // Init commands for 7789 screens
727729 uint8_t cmdinit_st7789 [] = {
728- // 1: Software reset, no args, w/delay ~150 ms delay
730+ #if !defined (DISPLAY_PIN_RST ) || (DISPLAY_PIN_RST < 0 )
731+ // Software reset if rst pin not available, no args, w/delay ~150 ms delay
729732 ST77XX_SWRESET , ST_CMD_DELAY , 150 ,
730- // 2: Out of sleep mode, no args, w/delay 10 ms delay
733+ #endif
734+ // Out of sleep mode, no args, w/delay 10 ms delay
731735 ST77XX_SLPOUT , ST_CMD_DELAY , 10 ,
732- // 3: Set color mode, 1 arg + delay: 16-bit color, 10 ms delay
736+ // Set color mode, 1 arg + delay: 16-bit color, 10 ms delay
733737 ST77XX_COLMOD , 1 + ST_CMD_DELAY , 0x55 , 10 ,
734- // 4: Mem access ctrl (directions), 1 arg: Row/col addr, bottom-top refresh
738+ // Mem access ctrl (directions), 1 arg: Row/col addr, bottom-top refresh
735739 ST77XX_MADCTL , 1 , DISPLAY_MADCTL ,
736- // 5: Column addr set, 4 args, no delay: XSTART = 0, XEND = 240
740+ // Vertical Scroll Start Address of RAM
741+ // ST77XX_VSCSAD, 2, DISPLAY_VSCSAD >> 8, DISPLAY_VSCSAD & 0xFF,
742+ // Column addr set, 4 args, no delay: XSTART = 0, XEND = 240
737743 ST77XX_CASET , 4 , 0x00 , 0 , 0 , 240 ,
738- // 6: Row addr set, 4 args, no delay: YSTART = 0 YEND = 320
744+ // Row addr set, 4 args, no delay: YSTART = 0 YEND = 320
739745 ST77XX_RASET , 4 , 0x00 , 0 , 320 >> 8 , 320 & 0xFF ,
740- // 7: hack
746+ // Inversion on
741747 ST77XX_INVON , ST_CMD_DELAY , 10 ,
742- // 8: Normal display on, no args, w/delay 10 ms delay
748+ // Normal display on, no args, w/delay 10 ms delay
743749 ST77XX_NORON , ST_CMD_DELAY , 10 ,
744- // 9: Main screen turn on, no args, delay 10 ms delay
750+ // Main screen turn on, no args, delay 10 ms delay
745751 ST77XX_DISPON , ST_CMD_DELAY , 10
746752 };
747753
0 commit comments