From: Stefan B. <st...@tr...> - 2007-06-05 16:54:48
|
Hi Michael and others, someone wanted to connect 4 displays at once, but it didn't work. See here: http://www.linuxforen.de/forums/showthread.php?t=3D235915 The problem is in drv_HD_goto(int row, int col), file drv_HD44780.c, lin= e = 839. Here is a patch: ------------------------- /* handle multiple controllers */ for (pos =3D 0, controller =3D 0; controller < numControllers; = controller++) { pos +=3D CROWS[controller]; if (row < pos) { currController =3D (1 << controller); break; } } for (pos =3D 0; pos < controller; pos++) row -=3D CROWS[pos]; ------------------------- Greetings, Stefan |
From: Michael R. <re...@eu...> - 2007-06-05 20:09:30
|
Hi Stefan, > someone wanted to connect 4 displays at once, but it didn't work. > See here: > http://www.linuxforen.de/forums/showthread.php?t=235915 Hmmm..... how did you solve the problem that you need 5 control signals (4 enable, 1 strobe) but have only 4 (either the four "real" control signals or DB4..DB7? I know that theoretically we could use up to eight control lines (high data lines + control lines), but that would require some heavy modifications to the parport abstraction layer > The problem is in drv_HD_goto(int row, int col), file drv_HD44780.c, line > 839. > Here is a patch: Could you please provide a "real" patch (a context diff)? TIA, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |
From: Stefan B. <st...@tr...> - 2007-06-05 21:24:28
|
Hi Michael, here's the patch: --------------------------- --- drv_HD44780.c 2007-06-05 23:07:08.000000000 +0200 +++ drv_HD44780_new.c 2007-06-05 23:15:24.000000000 +0200 @@ -843,8 +843,9 @@ currController =3D (1 << controller); break; } - row -=3D CROWS[controller]; } + for (pos =3D 0; pos < controller; pos++) + row -=3D CROWS[pos]; /* column outside of current display's width */ if (col >=3D CCOLS[controller]) --------------------------- I didn't solve the problem with the control signals, i have to ask why there are restrictions how they are wired. For example, he has four displays and wants to set the four enable lines= to DB4-DB7 and STROBE + RS to the control signals.. Greetings, Stefan Am 05.06.2007, 22:09 Uhr, schrieb Michael Reinelt <re...@eu...>: > Hi Stefan, > >> someone wanted to connect 4 displays at once, but it didn't work. >> See here: >> http://www.linuxforen.de/forums/showthread.php?t=3D235915 > > Hmmm..... how did you solve the problem that you need 5 control signal= s = > (4 enable, 1 strobe) but have only 4 (either the four "real" control = > signals or DB4..DB7? > > I know that theoretically we could use up to eight control lines (high= = > data lines + control lines), but that would require some heavy = > modifications to the parport abstraction layer > >> The problem is in drv_HD_goto(int row, int col), file drv_HD44780.c, = = >> line 839. >> Here is a patch: > > Could you please provide a "real" patch (a context diff)? > > > TIA, Michael > |
From: Michael R. <re...@eu...> - 2007-06-09 04:41:40
|
Hi Stefan, > here's the patch: > --------------------------- > --- drv_HD44780.c 2007-06-05 23:07:08.000000000 +0200 > +++ drv_HD44780_new.c 2007-06-05 23:15:24.000000000 +0200 > @@ -843,8 +843,9 @@ > currController = (1 << controller); > break; > } > - row -= CROWS[controller]; > } > + for (pos = 0; pos < controller; pos++) > + row -= CROWS[pos]; > > /* column outside of current display's width */ > if (col >= CCOLS[controller]) > > --------------------------- Are you *really* sure about this? Without trying, just by looking at the code, I guess your patch is wrong. You would decrement 'row' two times... > I didn't solve the problem with the control signals, i have to ask why > there are restrictions how they are wired. > For example, he has four displays and wants to set the four enable lines > to DB4-DB7 and STROBE + RS to the control signals.. The restriction comes from the fact that control and data signals share the same bits (signals are 8 bit wide), If I allow them to get mixed, I'd have to resize the data type to 16 bit, and declare the lower 8 as data lines and the upper 8 as control lines. This would require massive rewrite of the parport abstraction layer, and probably a rewrite of all parport drivers. bye, Michael -- Michael Reinelt <re...@eu...> http://home.pages.at/reinelt GPG-Key 0xDF13BA50 ICQ #288386781 |