/* LCD init */ void lcd_init_device(void) { #if (NUM_CORES > 1) && defined(HAVE_BACKLIGHT_INVERSION) corelock_init(&cl); #endif #ifdef IPOD_MINI2G /* serial LCD hookup */ lcd_wait_write(); LCD1_CONTROL = 0x01730084; /* fastest setting */ #elif defined(IPOD_1G2G) || defined(IPOD_3G) LCD1_CONTROL = (LCD1_CONTROL & 0x0002) | 0x0084; /* fastest setting, keep backlight bit */ #else LCD1_CONTROL = 0x0084; /* fastest setting */ #endif lcd_cmd_and_data(R_DRV_WAVEFORM_CONTROL, 0x48); /* C waveform, no EOR, 9 lines inversion */ lcd_cmd_and_data(R_POWER_CONTROL, POWER_REG_H | 0xc); lcd_cmd_and_data(R_DISPLAY_CONTROL, 0x0019); lcd_set_contrast(DEFAULT_CONTRAST); #ifdef HAVE_BACKLIGHT_INVERSION invert_display(); #endif lcd_set_flip(false); lcd_cmd_and_data(R_ENTRY_MODE, 0x0000); }
/** * @brief Low level GDISP driver initialization. * * @notapi */ bool_t gdisp_lld_init(void) { // Initialize your display init_board(); // Hardware reset. setpin_reset(TRUE); delay_ms(10); setpin_reset(FALSE); delay_ms(1); write_cmd(ST7565_LCD_BIAS_7); write_cmd(ST7565_ADC_NORMAL); write_cmd(ST7565_COM_SCAN_INC); set_display_start_line(0); set_contrast(32); write_cmd(ST7565_RESISTOR_RATIO | 0x3); // turn on voltage converter (VC=1, VR=0, VF=0) write_cmd(ST7565_POWER_CONTROL | 0x04); delay_ms(50); // turn on voltage regulator (VC=1, VR=1, VF=0) write_cmd(ST7565_POWER_CONTROL | 0x06); delay_ms(50); // turn on voltage follower (VC=1, VR=1, VF=1) write_cmd(ST7565_POWER_CONTROL | 0x07); delay_ms(50); display_on(); write_cmd(ST7565_ALLON_NORMAL); invert_display(0);// Disable Inversion of display. write_cmd(ST7565_RMW); gdisp_lld_display(); // Initialize the GDISP structure GDISP.Width = GDISP_SCREEN_WIDTH; GDISP.Height = GDISP_SCREEN_HEIGHT; GDISP.Orientation = GDISP_ROTATE_0; GDISP.Powermode = powerOn; GDISP.Contrast = 50; #if GDISP_NEED_VALIDATION || GDISP_NEED_CLIP GDISP.clipx0 = 0; GDISP.clipy0 = 0; GDISP.clipx1 = GDISP.Width; GDISP.clipy1 = GDISP.Height; #endif return TRUE; }
void lcd_set_backlight_inversion(bool yesno) { lcd_backlit = yesno; invert_display(); }
void lcd_set_invert_display(bool yesno) { lcd_inverted = yesno; invert_display(); }