casemod:
If you read the question it is indicated - ST7735 which is an SPI display clocked at 8MHz (Max).
That should clarify some other things. Ill have a look at your library, what displays does it support?
I saw a mention of that display in reply # 11 but so many different interfaces were mentioned earlier
that I wasn't sure which display you were referring to in reply #13 since
reply #11 mentioned 384ms and 414ms but reply #13 said things were now faster
but didn't mention the actual display so I wasn't sure.
openGLCD currently has full support for the ks0108 and sed1520 type displays
but not the ST7735 so it is of no use for the ST7735.
I think it would helpful if you stated your needs for the project.
Knowing the requirements will help lead to the solution.
For example, is the real requirement a particular refresh rate or minimizing
the time for an individual LCD update to provide more cycles for other things?
Ggraphic LCDs are cool but if you don't need graphics,
you may want to stick to a hd44780 character display
as it should update faster with less overhead (double win)
than a graphic LCD because everything is simpler with text
based LCDs and less data has to be communicated with character
based LCDs.
But it all depends on your real requirements.
100x per second updates?
Most of the LCDs out there don't have a liquid inside them that can
transition that fast. Many of these LCDs can't display pixel changes faster than 150ms to 200ms
It isn't that the LCD can't be updated faster than that (it can),
but rather it is a physics problem of the actual display.
(See the attached image from a typical 16x2 LCD display)
The liquid inside the display simply can't rotate the molecules inside it
fast enough to transition a pixel cell that fast.
So updating the LCD faster than about 5 times per second isn't of any practical value
since the pixels can't transition that fast.
And even if the display does have a faster liquid,
eventually you start to bump into limitations of the human eye
at much above 50 to 60 times per second.
Then there is a practical matter of usability of rapidly changing data.
A more frequent update rate would provide a more responsive update,
but beyond about 2 or 3 times per second can make the display unreadable
particularly if the data is rapidly changing.
For example, if you were printing something like RPMs.
If you update it too quickly (more than about 2-3 times/second)
and the data is rapidly changing all you will see
is a jumble of pixels where the digits are supposed to be.
For hd44780 displays,
you can look at the LCDiSpeed benchmark numbers on the link I provided to calculate
how long each of your updates will take based on the transfer time of a single byte
and how much data you are sending.
That byte transfer time is the time from when the write() is called until the write() returns
which includes the total overhead of everything, library, interface, lcd, etc...
Setting the cursor position takes the same time as a sending a data byte/char.
You can see from the table that the library can update a full 16x2 display hundreds of
times per second on all interfaces except i2c.
The table shows you how long it takes to push a byte through the library, through the
interface all the way to the HD44780 display.
You can do the math to see how long your updates will take on your desired
interface and from that you can calculate the maximum refresh rate for your application.
--- bill