Parallel LCD object
SSteve
Posts: 808
Here's an updated version of the parallel LCD object I original posted in this thread: http://forums.parallax.com/forums/default.aspx?f=25&m=126907
This new version implements 8-bit mode and tests the busy flag before sending anything to the LCD. If you used my earlier version, please note that I reversed the order of the data pins to make the wiring for 8-bit vs. 4-bit mode more logical.
I tested this code with my PropSTICK and the parallel LCD that comes with the Professional Development Board.
I spent a few hours trying to track down a bug in 8-bit mode. I was at a loss trying to figure out why I was getting garbled characters. I went over and over my code and couldn't find any problems. I finally mapped out which characters were being mapped to which and saw that whenever DB2 was supposed to be set, DB3 was being set as well and vice versa. It finally dawned on me to look at my breadboard and see that the legs of two of the resistors were touching. I separated them and everything worked perfectly. It's going to take me a while to get used to this hardware stuff.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
OS-X: because making Unix user-friendly was easier than debugging Windows
This new version implements 8-bit mode and tests the busy flag before sending anything to the LCD. If you used my earlier version, please note that I reversed the order of the data pins to make the wiring for 8-bit vs. 4-bit mode more logical.
I tested this code with my PropSTICK and the parallel LCD that comes with the Professional Development Board.
I spent a few hours trying to track down a bug in 8-bit mode. I was at a loss trying to figure out why I was getting garbled characters. I went over and over my code and couldn't find any problems. I finally mapped out which characters were being mapped to which and saw that whenever DB2 was supposed to be set, DB3 was being set as well and vice versa. It finally dawned on me to look at my breadboard and see that the legs of two of the resistors were touching. I separated them and everything worked perfectly. It's going to take me a while to get used to this hardware stuff.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
OS-X: because making Unix user-friendly was easier than debugging Windows
Comments
lay things out so that can't happen. Sometimes this means laying things out
differently or adding an extra wire or two. I look at solderless breadboarding
almost as an art. I've just seen way too many rat's nests where no way you
could figure out what's wrong.