KurtE
Senior Member+
Since I had one of the T-LC chips out in breadboard to fix an issue with my partial LC support for the ILI9341 in my ILI9341_t3n library, I wondered about some of our other libraries for smaller displays and how well they were working.
So I thought I would grab one of the displays sitting on my desk in this case the 2" Adafruit ST7789 (240x320) and built the font output test.
I then remembered we have this library running on the LC, but it uses SPI.transfer or SPI1.transfer to do all of the outputs... So there is no double buffering of data going out over SPI and all 16 bit writes were done with two 8 bit writes... So I added a Serial out, with how long it took to draw the different font pages
(uint32_t displayStuff1())
I simply printed out the elapsed Millis a the end of the page:
Starting times were (Output modified to condense:
First pass, was to go to bypass SPI.transfer and instead try to go to register level and keep the SPI double buffer with data as much as possible. Still have to wait until queue is fully output before changing DC(RS) pin.
With This first pass, numbers are:
Question is, are there those out there using this type of setup? i.e. is it worth spending time speeding up these displays for the LC?
I put the WIP branch up at: https://github.com/KurtE/ST7735_t3/tree/TLC_Speedup
If I continue with this, may see if switching to 16 bit writes for pixels speeds up.
So I thought I would grab one of the displays sitting on my desk in this case the 2" Adafruit ST7789 (240x320) and built the font output test.
I then remembered we have this library running on the LC, but it uses SPI.transfer or SPI1.transfer to do all of the outputs... So there is no double buffering of data going out over SPI and all 16 bit writes were done with two 8 bit writes... So I added a Serial out, with how long it took to draw the different font pages
(uint32_t displayStuff1())
I simply printed out the elapsed Millis a the end of the page:
Starting times were (Output modified to condense:
Code:
Rotation: 0
Press anykey to continue
DS1 (0,90) 240 320
85
DS1 (0,90) 240 320
95
105
92
125
97
136
281
110
146
129
159
With This first pass, numbers are:
Code:
Rotation: 0
Press anykey to continue
DS1 (0,90) 240 320
76
DS1 (0,90) 240 320
85
94
83
110
81
122
254
101
124
118
134
I put the WIP branch up at: https://github.com/KurtE/ST7735_t3/tree/TLC_Speedup
If I continue with this, may see if switching to 16 bit writes for pixels speeds up.