Beside 8051 based µC I also program PC software in VB6.0 & LabView, so you can always post your draft and I will look into it.ericgibbs said:hi mcs,
Do you understand the Basic language, I know there are many variants, but I will, if you are interested, post my draft copy of the Oshonsoft basic program I have been using for the special characters.
The OS LCD sim does respond in this application as per the HD44780.
If you examine my program, you will see for each digit, before its written to the LCD, the special character pattern
is loaded into DDRAM, it is then called using that special characters address.
I write the digit to its designated location on the LCD.
Absolutely, one digit equals 4 user defined characters.ericgibbs said:eg: consider 6 digits, representing the real time of day,
if I want to display the minutes 'tens', the program gets the digit for the time counter,
creates the special char pattern for 4 of the LCD pixel blocks, it then writes these 4 spec chars to location number 5 of the LCD.
Remember when you do it this way, only 4 LCD pixel blocks, require a new spec char, before its written to the display.
When you only write one character that has changed, you need only four user defined characters. It's meaningless to always overwrite the whole LCD. I agree with you for the full 100%
But... ...
When you change a user defined character all LCD locations that are using those four user defined characters are also changed. Even if you don't explicitly write to those locations, they will change on the LCD.
eg. user defined character 1 is used in positions Line1, pos5; Line1, Pos10; Line2, Pos3 and Line2, Pos16 (it's just an example, has nothing to do with your clock or my "big font"). Changing user defined character 1 will result in an immediate change of all four LCD positions mentioned above without any write actions to those locations!!!
Apparently the controller is continously updating the LCD display, and that is something your LCD simulator doesn't do (I think)!
Here again I agree for the full 100% with you. In all my previous projects I only write data that has changed on the LCD .ericgibbs said:When dealing with these LCD's its a good idea to only re-write a digit to the LCD, when that digit has changed from its previous value.
There is no point in refreshing the whole display, if only one digit has changed.