Beispiel #1
0
void
lcd_blank(int blank)
{

    if (blank) {
        lcd_set_brightness(0);
        lcdisblank = 1;
    } else {
        lcdisblank = 0;
        lcd_set_brightness(lcd_get_brightness());
    }
}
Beispiel #2
0
void
lcd_set_backlight(int on)
{

    if (!on) {
        lcd_set_brightness(0);
        lcdislit = 0;
    } else {
        lcdislit = 1;
        lcd_set_brightness(lcd_get_brightness());
    }
}
Beispiel #3
0
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);
}
Beispiel #4
0
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;
    }
}
Beispiel #5
0
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;
}
Beispiel #6
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;
  }
}
Beispiel #7
0
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);
}
Beispiel #8
0
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
  }
}
Beispiel #10
0
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
  }
}
Beispiel #12
0
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;
}
Beispiel #13
0
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;
}
Beispiel #14
0
void
lcd_burner(void *v, u_int on, u_int flags)
{

    lcd_set_brightness(on ? lcd_get_brightness() : 0);
}