The scrolling functions in the LCD library don't appear to cope with the 'odd' memory addressing on the common 16 x 2 LCD displays (a long line starts scrolling on line 0, but then changes halfway to line 1).
I started to write a software routine to scroll a line of arbitrary length without the above happening, but am hitting the limit of my programming skills.
Has anyone written such a scrolling routine, or have I got to start ascending the steeper section of the 'C' learning curve?
Could you clarify how you would like the display to work. People tend to interpret the term 'scrolling' differently. My interpretation, based on the operation of the old computer terminals, is the vertical movement of the information on the screen when the last row is full. The originators of the LiquidCrystal library seem to believe that the term refers to the horizontal movement of the characters on the screen. This is exactly the same behavior that Hitachi calls shifting as you can tell if you look at the instruction set for the LCD controller. You mention of long lines of text starting on line 0 and then continuing on line 1 is what I would describe as word wrapping which has nothing to do with scrolling or shifting.
floresta:
Could you clarify how you would like the display to work. People tend to interpret the term 'scrolling' differently.[/quote]
Thanks for the reply.
I want a long line of around 60 characters to enter (say) line 0 on the right and shift across to the left. I expected this to work with 'autoscroll', but the line broke around halfway and started entering from the right on line 1. A 'google' soon showed that this is a 'feature' of these displays.
Having posted my initial posting, I realised that there was a forum specifically relating to displays with a thread similar to my problem, so I posted a message there (mentioning that I'd also done so on this forum). I've now received what appears to be a comprehensive solution in that thread. This is the thread: