Speed up lcd2usb driver by overriding uPause with an empty function (a lcd2usb
device keeps track of the timing itself) Add more logging to backlight()
This commit is contained in:
@@ -31,6 +31,8 @@ void lcd2usb_HD44780_backlight(PrivateData *p, unsigned char state);
|
|||||||
unsigned char lcd2usb_HD44780_scankeypad(PrivateData *p);
|
unsigned char lcd2usb_HD44780_scankeypad(PrivateData *p);
|
||||||
void lcd2usb_HD44780_close(PrivateData *p);
|
void lcd2usb_HD44780_close(PrivateData *p);
|
||||||
void lcd2usb_HD44780_set_contrast(PrivateData *p, unsigned char value);
|
void lcd2usb_HD44780_set_contrast(PrivateData *p, unsigned char value);
|
||||||
|
// Pseudo uPause function. A lcd2usb device takes care of timing itself.
|
||||||
|
void lcd2usb_HD44780_uPause(PrivateData *p, int usecs) {}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -98,6 +100,8 @@ hd_init_lcd2usb(Driver *drvthis)
|
|||||||
|
|
||||||
common_init(p, IF_4BIT);
|
common_init(p, IF_4BIT);
|
||||||
|
|
||||||
|
// Replace uPause with empty one after initialization
|
||||||
|
p->hd44780_functions->uPause = lcd2usb_HD44780_uPause;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,9 +135,12 @@ lcd2usb_HD44780_backlight(PrivateData *p, unsigned char state)
|
|||||||
// Get backlight brightness.
|
// Get backlight brightness.
|
||||||
int promille = (state == BACKLIGHT_ON) ? p->brightness : p->offbrightness;
|
int promille = (state == BACKLIGHT_ON) ? p->brightness : p->offbrightness;
|
||||||
|
|
||||||
|
p->hd44780_functions->drv_report(RPT_INFO, "lcd2usb_HD44780_backlight: Setting backlight to %d", promille);
|
||||||
|
|
||||||
// And set it (converted from [0,1000] -> [0,255]).
|
// And set it (converted from [0,1000] -> [0,255]).
|
||||||
usb_control_msg(p->usbHandle, USB_TYPE_VENDOR, LCD2USB_SET_BRIGHTNESS,
|
if (usb_control_msg(p->usbHandle, USB_TYPE_VENDOR, LCD2USB_SET_BRIGHTNESS,
|
||||||
(promille * 255) / 1000, 0, NULL, 0, 1000);
|
(promille * 255) / 1000, 0, NULL, 0, 1000) < 0)
|
||||||
|
p->hd44780_functions->drv_report(RPT_WARNING, "lcd2usb_HD44780_backlight: setting backlight failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user