Example #1
0
int main(int argc, char **argv) {
    if(wiringPiSetup() == -1) {
        printf("wiringPiSetup() failed\n");
        return EXIT_FAILURE;
    }

    // 540kHz speed - recomended by ST7920 spec
    //if ((lcd_fd = wiringPiSPISetupMode(0, 540000, 0x07)) < 0) {
    if ((lcd_fd = wiringPiSPISetup(0, 540000)) < 0) {
        printf("Can't open the SPI bus\n");
        return EXIT_FAILURE;
    }
    
    char mode = 0x07;
    ioctl(lcd_fd, SPI_IOC_WR_MODE, &mode);

    init_gpio();
    reset_lcd();
    init_lcd();
    
    set_extended_mode(0, 0, 0);
    set_extended_mode(0, 1, 1);

    clear_lcd();

    show_image(raspberry_pix);

    return EXIT_SUCCESS;
}
Example #2
0
int Dpy::set_contrast(int value) {
	int ret = -2;
	unsigned char oldreg;
	set_extended_mode();
	if (value > CONTRAST_MAX || value < 0 ) return (-2);
	oldreg = contrast_set;
	contrast_set = (value & WSTAR_CONTRAST_LOW_MASK);
	ret = write_cmd(contrast_set);
	if(ret < 0) {
		contrast_set = oldreg;
		return(ret);
	}
	oldreg = pow_icon_contrast;
	pow_icon_contrast |= ((value >> 4) & WSTAR_POW_ICON_CONTRAST_CNTH_MASK);
	ret = write_cmd(pow_icon_contrast);
	if(ret < 0) {
		pow_icon_contrast = oldreg;
		return(ret);
	}
	return (ret);
}
Example #3
0
int Dpy::init() {
	int ret;
	this->backlight_state = true;
	this->display_mode = WSTAR_DISPLAY_STATE | WSTAR_DISPLAY_CMD;
	this->function_set = WSTAR_FUNCTION_8BIT | WSTAR_FUNCTION_TWO_LINE_5X8 | WSTAR_FUNCTION_CMD;
	this->entry_mode = WSTAR_ENTRY_MODE_CMD;
	this->cursor_display_shift = WSTAR_CUR_DPY_SHIFT_RIGHT | WSTAR_CUR_DPY_SHIFT_SCREEN | WSTAR_CUR_DPY_SHIFT_CMD;
	this->ddram_addr = WSTAR_DDRAM_CMD;
	// Extended instruction set (IS=1)
	this->bias_osc_frequency_adj = 0x04 | WSTAR_BIAS_OSC_CMD;
	this->icon_ram_address = WSTAR_ICON_RAM_ADD_CMD;
	this->pow_icon_contrast = WSTAR_POW_ICON_CONTRAST_BOOST | WSTAR_POW_ICON_CONTRAST_CMD;
	this->follower = FOLLOWER_DEFAULT | WSTAR_FOLLOWER_ON | WSTAR_FOLLOWER_CMD;
	this->contrast_set = CONTRAST_DEFAULT | WSTAR_CONTRAST_LOW_CMD;
	set_backlight(backlight_state);
	ret = write_cmd(function_set);
	ret = set_extended_mode();
	ret = write_cmd(bias_osc_frequency_adj);
	ret = write_cmd(contrast_set);
	ret = write_cmd(pow_icon_contrast);
	ret = write_cmd(follower);
	ret = write_cmd(display_mode);
	return(ret);
}