void lcd_blank(int blank) { if (blank) { lcd_set_brightness(0); lcdisblank = 1; } else { lcdisblank = 0; lcd_set_brightness(lcd_get_brightness()); } }
void lcd_set_backlight(int on) { if (!on) { lcd_set_brightness(0); lcdislit = 0; } else { lcdislit = 1; lcd_set_brightness(lcd_get_brightness()); } }
void lcd_attach(struct device *parent, struct device *self, void *aux) { struct pxa2x0_lcd_softc *sc = (struct pxa2x0_lcd_softc *)self; struct wsemuldisplaydev_attach_args aa; extern int glass_console; printf("\n"); pxa2x0_lcd_attach_sub(sc, aux, &lcd_bpp16_screen, CURRENT_DISPLAY, glass_console); aa.console = glass_console; aa.scrdata = &lcd_screen_list; aa.accessops = &lcd_accessops; aa.accesscookie = sc; aa.defaultscreens = 0; (void)config_found(self, &aa, wsemuldisplaydevprint); /* Start with approximately 40% of full brightness. */ lcd_set_brightness(3); (void)powerhook_establish(lcd_power, sc); }
void lcd_power(int why, void *v) { switch (why) { case PWR_SUSPEND: case PWR_STANDBY: lcd_set_brightness(0); pxa2x0_lcd_power(why, v); break; case PWR_RESUME: pxa2x0_lcd_power(why, v); lcd_set_brightness(lcd_get_brightness()); break; } }
int lcd_activate(struct device *self, int act) { struct pxa2x0_lcd_softc *sc = (struct pxa2x0_lcd_softc *)self; switch (act) { case DVACT_SUSPEND: lcd_set_brightness(0); pxa2x0_lcd_suspend(sc); break; case DVACT_RESUME: pxa2x0_lcd_resume(sc); lcd_set_brightness(lcd_get_brightness()); break; } return 0; }
static void dispatch_touch_input(screen_saver_t* s, touch_msg_t* msg) { s->last_touch_time = chTimeNow(); if (s->active && !msg->touch_down) { gui_hide_screen(); lcd_set_brightness(100); s->active = false; active = false; } }
int lcd_activate(struct device *self, int act) { struct pxa2x0_lcd_softc *sc = (struct pxa2x0_lcd_softc *)self; int ret = 0; switch (act) { case DVACT_SUSPEND: lcd_set_brightness(0); pxa2x0_lcd_suspend(sc); break; case DVACT_RESUME: pxa2x0_lcd_resume(sc); lcd_set_brightness(lcd_get_brightness()); break; default: ret = config_activate_children(self, act); break; } return (ret); }
static void set_backlight(struct msm_fb_data_type *mfd) { int bl_level = mfd->bl_level; int gamma_level; static int pre_bl_level = 0; // brightness tuning gamma_level = get_gamma_value_from_bl(bl_level); if ((s6e8aa0_lcd.lcd_state.initialized) && (s6e8aa0_lcd.lcd_state.powered_up) && (s6e8aa0_lcd.lcd_state.display_on)) { if(s6e8aa0_lcd.lcd_gamma != gamma_level) { DPRINT("brightness!!! %d(bl)->gamma=%d stored=%d\n",bl_level,gamma_level,s6e8aa0_lcd.stored_gamma); lcd_set_brightness(mfd, gamma_level); } else { s6e8aa0_lcd.stored_gamma = gamma_level; s6e8aa0_lcd.stored_elvss = gamma_level; lcd_set_brightness(mfd, gamma_level); // DPRINT("brightness(Same) bl_level=%d, gamma=%d curr=%d lcd.stored_gamma=%d\n",bl_level,gamma_level,s6e8aa0_lcd.lcd_gamma, s6e8aa0_lcd.stored_gamma); } } else { s6e8aa0_lcd.stored_gamma = gamma_level; s6e8aa0_lcd.stored_elvss = gamma_level; DPRINT("brightness(Ignore_OFF) %d(bl)->gamma=%d stored=%d\n",bl_level,gamma_level,s6e8aa0_lcd.stored_gamma); } pre_bl_level = bl_level; }
void OpenSprinkler::lcd_start() { // turn on lcd lcd.init(1, PIN_LCD_RS, 255, PIN_LCD_EN, PIN_LCD_D4, PIN_LCD_D5, PIN_LCD_D6, PIN_LCD_D7, 0,0,0,0); lcd.begin(); if (lcd.type() == LCD_STD) { // this is standard 16x2 LCD // set PWM frequency for adjustable LCD backlight and contrast TCCR1B = 0x01; // turn on LCD backlight and contrast lcd_set_brightness(); lcd_set_contrast(); } else { // this is I2C LCD // handle brightness } }
void menu_adjust_brightness(void) { uint8_t i; uint8_t min = 0; uint8_t max = 255; uint8_t res; uint8_t step; lcd_clear(); lcd_puts_P(PSTR("Adjust brightness")); lcd_locate(0, 1); lcd_cursor(false); set_busy_led(true); for (;;) { lcd_locate(0, 1); lcd_putc('['); for (i = 0; i < 18; i++) { lcd_putc(i >= (lcd_brightness / 14) ? ' ' : 0xFF); } lcd_putc(']'); res = lcd_set_brightness(lcd_brightness); if (res) break; for (;;) { step = 10; if (lcd_brightness < 20 || lcd_brightness > 235) step = 1; if (get_key_autorepeat(KEY_PREV)) { if (lcd_brightness <= min) lcd_brightness = max; else lcd_brightness -= step; break; } if (get_key_autorepeat(KEY_NEXT)) { if (lcd_brightness >= max) lcd_brightness = min; else lcd_brightness += step; break; } if (get_key_press(KEY_SEL)) { lcd_cursor(false); set_busy_led(false); menu_ask_store_settings(); return; } } } pwm_error(); }
/** Initialize LCD */ void OpenSprinkler::lcd_start() { // turn on lcd lcd.init(1, PIN_LCD_RS, 255, PIN_LCD_EN, PIN_LCD_D4, PIN_LCD_D5, PIN_LCD_D6, PIN_LCD_D7, 0,0,0,0); lcd.begin(); if (lcd.type() == LCD_STD) { // this is standard 16x2 LCD // set PWM frequency for adjustable LCD backlight and contrast #if OS_HW_VERSION==(OS_HW_VERSION_BASE+20) || OS_HW_VERSION==(OS_HW_VERSION_BASE+21) // 8MHz and 12MHz TCCR1B = 0x01; #else // 16MHz TCCR1B = 0x02; // increase division factor for faster clock #endif // turn on LCD backlight and contrast lcd_set_brightness(); lcd_set_contrast(); } else { // for I2C LCD, we don't need to do anything } }
int lcd_param(struct pxa2x0_lcd_softc *sc, u_long cmd, struct wsdisplay_param *dp) { int res = EINVAL; switch (dp->param) { case WSDISPLAYIO_PARAM_BACKLIGHT: if (cmd == WSDISPLAYIO_GETPARAM) { dp->min = 0; dp->max = 1; dp->curval = lcd_get_backlight(); res = 0; } else if (cmd == WSDISPLAYIO_SETPARAM) { lcd_set_backlight(dp->curval); res = 0; } break; case WSDISPLAYIO_PARAM_CONTRAST: /* unsupported */ res = ENOTTY; break; case WSDISPLAYIO_PARAM_BRIGHTNESS: if (cmd == WSDISPLAYIO_GETPARAM) { dp->min = 1; dp->max = lcd_max_brightness(); dp->curval = lcd_get_brightness(); res = 0; } else if (cmd == WSDISPLAYIO_SETPARAM) { lcd_set_brightness(dp->curval); res = 0; } break; } return res; }
static msg_t screen_saver_thread(void* arg) { (void)arg; chRegSetThreadName("screen_saver"); while (1) { screen_saver_t* s = arg; quantity_t screen_saver_timeout = app_cfg_get_screen_saver(); if (!s->active && screen_saver_timeout.value > .5f && (chTimeNow() - s->last_touch_time) > S2ST(60 * screen_saver_timeout.value)) { s->active = true; active = true; lcd_set_brightness(0); gui_push_screen(s->screen); } chThdSleepSeconds(10); } return 0; }
void lcd_burner(void *v, u_int on, u_int flags) { lcd_set_brightness(on ? lcd_get_brightness() : 0); }