Currently DUINO_SSD1306::display() is slow in the interface loop, resulting in unacceptable delays between successive function loop calls. This is because it always updates the entire display (columns 0 - 127, pages 0 - 7), resulting in the longest possible fixed I2C transmit time.
Allowing specification of a rectangular region to update, and deriving the correct column and page ranges along with corresponding buffer indexing, could greatly reduce the latency in the interface loop.
Currently
DUINO_SSD1306::display()
is slow in the interface loop, resulting in unacceptable delays between successive function loop calls. This is because it always updates the entire display (columns 0 - 127, pages 0 - 7), resulting in the longest possible fixed I2C transmit time.Allowing specification of a rectangular region to update, and deriving the correct column and page ranges along with corresponding buffer indexing, could greatly reduce the latency in the interface loop.