A question for all those who have played with LCD displays
I came across this problem in the past when programming LCD displays with 6800 and HC11 series
processors and now with the F628 chip.
I'm currently developing a program that uses a 4x20 display to display incoming data. The display
will refresh with the rate of the incoming data and could even be as often as 50 milliseconds.
The problem that I'm having is that quite often, especially when the refresh rate is high, either
some characters will be garbled or the formatting is totally gone - ie. if I want to display something
at the beginning of line 4, it will start displaying in the middle of line 3.
To me it seems like there is some sort of a timing issue or the LCD is unable to cope with high
refresh rates.
I'm just curious if anyone else has encountered this problem in the past and what measures did
you take to circumvent this problem.
BTW, I'm using a 4 wire interface to push data to the LCD.
Thanks!
NO Lcd resets in the displaying loops !!!
Quote:
Originally Posted by
Navaidstech
Sorry guys, got sidetracked here....
OK, here is the snippet of the code. This is essentially a display routine, which will fire up everytime one of the SPEEDUNITS varaiables changes. This could be as often as 20 ms.
However, I have also noticed this problem with slower update speeds (ie. 1 second).
I'm driving a 4x20 display using 4 data lines.
Code:
DisplayResults:
lcdout $fe,1,$fe,2 ' Clear Display
lcdout $fe,$80,#Speedunits[0], " FPS" ' Display pulse value
lcdout $fe,$89,#Speedunits[1], " FPS" ' Display pulse value
lcdout $fe,$C0,#Speedunits[2], " FPS" ' Display pulse value
lcdout $fe,$C9,#Speedunits[3], " FPS" ' Display pulse value
lcdout $fe,$94,"Top Speed ",#PeakSpeed," FPS"
return
Hi, Just try to place your " LCDOUT $FE,1 " command OUTSIDE your loop ... ( really needed once only in a program !!! @ top lines i.e. )
so your sub comes to:
Code:
DisplayResults:
lcdout $fe,$80,#Speedunits[0], " FPS" ' Display pulse value
lcdout $fe,$89,#Speedunits[1], " FPS" ' Display pulse value
lcdout $fe,$C0,#Speedunits[2], " FPS" ' Display pulse value
lcdout $fe,$C9,#Speedunits[3], " FPS" ' Display pulse value
lcdout $fe,$94,"Top Speed ",#PeakSpeed," FPS"
return
Will handle the 50 Hz refreshment, now ...
and note " Home " command already included in the " lcdout $fe,1 " and " lcdout $fe,$80 " commands ...
Alain