Exemple #1
0
void lcd_send_data(unsigned char data) {

    lcd_e(0);

	lcd_rs(1);

	// starszy nibble 0xF-
	lcd_e(1);

	lcd_nibble( data >> 4 );

	lcd_e(0);
	_delay_us(50);_delay_us(50);

	// m³odszy nibble 0x-F
	lcd_e(1);

	lcd_nibble( data & 0x0f);

	lcd_e(0);
	_delay_us(50);_delay_us(50);

}
Exemple #2
0
void lcd_send_instr(unsigned char data) {

	lcd_e(0);
    
    lcd_rs(0);	// wysy³amy instrukcjê

	// starszy nibble 0xF-
	lcd_e(1);

	lcd_nibble( data >> 4 );

	lcd_e(0);
	_delay_us(50);_delay_us(50);

	// m³odszy nibble 0x-F
	lcd_e(1);

	lcd_nibble( data & 0x0f);

	lcd_e(0);
	_delay_us(50);_delay_us(50);

}
Exemple #3
0
int lcd_drv_write(mdev_t *dev, const char *line1, const char *line2)
{
	int ret;
	ret = wakelock_get(WL_ID_LCD_WRITE);
	if (ret != WM_SUCCESS)
		return ret;

	ret = os_mutex_get(&lcd_mutex, OS_WAIT_FOREVER);
	if (ret == -WM_FAIL) {
		lcd_e("failed to get mutex");
		wakelock_put(WL_ID_LCD_WRITE);
		return ret;
	}
	__write_to_lcd(dev, line1, line2);
	os_mutex_put(&lcd_mutex);

	wakelock_put(WL_ID_LCD_WRITE);

	return 0;
}
Exemple #4
0
int lcd_drv_init(I2C_ID_Type id)
{
	int ret;
	MDEV_lcd.name = MDEV_NAME_lcd;

	if (mdev_get_handle(MDEV_NAME_lcd) != NULL)
		return WM_SUCCESS;

	pinmux_drv_init();
	gpio_drv_init();
	i2c_drv_init(id);

	ret = os_mutex_create(&lcd_mutex, "lcd", OS_MUTEX_INHERIT);
	if (ret == -WM_FAIL) {
		lcd_e("Failed to create mutex");
		return -WM_FAIL;
	}

	mdev_register(&MDEV_lcd);
	MDEV_lcd.private_data = (uint32_t) id;
	init_lcd();

	return WM_SUCCESS;
}