Go Down

Topic: Enhanced LiquidCrystal (Read 15 times) previous topic - next topic


8 data pins + RW 432 milliseconds
8 data pins - RW 641 milliseconds
4 data pins + RW 719 milliseconds
4 data pins - RW 1038 milliseconds

I don't think there should be that big a difference between the 8-bit and the 4-bit speeds for the same RW configuration.  I haven't checked your code but I hope you took into account the fact that there is no delay (or busy check) required between the sending of the high nibble and the sending of the low nibble.  



One more option for connecting the 40x4 LCD that I realized was there--not a change to the code but just using the fact that internally the flag for the RW line not having been passed is 255.

LiquidCrystal lcd(RS,255,Enable1,Enable2,  data3,data2,data1,data0);

which saves one pin in the interface. Again it runs about 1/3 slower this way.


I AM checking the busy flag between nibbles. When I change that, it does speed things up by about 1/3. I have seen a couple of odd characters on the screen though. I will run this through the complete test procedure.

I'm impressed once again at how perceptive you are about problems with interfacing these LCDs!  



Don Weiman pointed out that the benchmark was slower than it should be for the 4 data line options and correctly intuited that I was checking the busy flag between nibbles. He was exactly right. I have updated the zip file and the new benchmark data is:
8 data pins + RW   431 milliseconds
4 data pins + RW   532 milliseconds
8 data pins - RW    641 milliseconds
4 data pins - RW    687 milliseconds

The standard library routine also includes an unnecessary delay between nibbles (calling pulseEnable for each nibble includes the 100 microseconds delay there).

Thanks again to Don


Looks like your site is down again.
I'm not able to download tried yesterday and today.

Go Up