SSD1306Ascii icon indicating copy to clipboard operation
SSD1306Ascii copied to clipboard

i2c scrolling on 32 line displays

Open scargill opened this issue 8 years ago • 4 comments

I'm using your WIRE example of scrolling (i2c) - and it isn't - the numbers count, lines go down then the bottom line gets replaced for the rest of the counts - ie the screen doesn't scroll up.

The only change I made to the example was to change the 64 to 32.... as I have the smaller 32 pixel high displays.....

scargill avatar Sep 09 '17 18:09 scargill

Scrolling only works with 64 pixel high displays.

Scrolling depends on the fact that the memory in the display controller which is 64 pixels high matches the height of display. In this case I can just set a pointer to scroll.

Scrolling on for a 32 pixel high display requires rewriting the display controller memory. The controller memory is not readable and I don't buffer the data so it is impossible.

  /**
   * @brief Enable or disable scroll mode.
   *
   * @param[in] enable true enable scroll on new line false disable scroll.
   * @note Scroll mode is only supported on 64 pixel high displays.
   *       Using setRow() or setCursor() will be unpredictable in scroll mode.
   *       You must use a font with an integral number of line on
   *       the display.
   */

greiman avatar Sep 09 '17 19:09 greiman

Thanks - marvellous library - thank you.

scargill avatar Oct 23 '17 09:10 scargill

@scargill check ~#47~ v1.2.1

d-a-v avatar Aug 19 '18 02:08 d-a-v

Scrolling should now work on all displays.

greiman avatar Aug 25 '18 17:08 greiman