From: Martin Z. <co...@mz...> - 2010-01-20 22:14:10
|
Hi! Today I have finally received my LCD, a picoLCD 256x64. I was pretty impressed how easy the switch from the X11 driver to the actual LCD was -- kudos to all of you! Everthing works fine, however polling the buttons using LCD::GPI(1) considerable slows down output on the LCD. I had a look at "drv_picoLCDGraphic.c" and the problem seems to lie in the function "drv_pLG_read()". static int drv_pLG_read(unsigned char *data, int size) { return usb_interrupt_read(lcd, USB_ENDPOINT_IN + 1, (char *) data, size, 1000); } When I change the timeout value from 1000 to 25 or so, keypress data are still received, but there is no notable delay from polling. If however I change timeout to 10000, there is a delay of ten seconds, leading me to the suspicion that the polling times out in every single calls of "usb_interrupt_read()". Is this a bug or actually a feature? ;) Here's what I get when I start lcd4linux with "-Fvv" (skipping the config file dump): [config file dump] plugin_cfg.c: Variable n = '0' (0) lcd4linux.c: initializing driver picoLCDGraphic picoLCDGraphic: $Rev: 1068 $ PICOLCD Graphic initialization Setting display inverted to 0 picoLCDGraphic: scanning for picoLCD 256x64... picoLCDGraphic: found picoLCD on bus 003 device 003 picoLCDGraphic: interface 0 already claimed by 'usbhid' picoLCDGraphic: attempting to detach driver... picoLCDGraphic: Manufacturer='ITUNER INC' Product='USB-LCD-256x64' SerialNumber='Ver.00.03' drv_picoLCDGraphic.c: drv_pLG_start(): allocated drv_picoLCDGraphic.c: drv_pLG_start(): zeroed Setting contrast to 230 Setting backlight to 1 In drv_pLG_clear picoLCDGraphic: using 1 GPI's and 8 GPO's initializing layout 'picoLCD' [and now the usual stuff of entering main loop and so forth] If anybody has got this LCD, I'll attach my config file. It basically prints "uptime()" and the keypress state on a couple of lines. I'll be off for a couple of days, so take your time... :) Thanks, Martin -- www.mzuther.de www.radix-musik.de |