LCD = 132x64 LCD
Controller = ST7567
Interface = SPI
MCU = PIC 16F enhanced, Fosc = 32 MHz, SPI = Fosc/4
The SPI interface does not allow reading DDRAM of the display. I am trying to graph Temp (Y-axis) v. Time (abscissa). Drawing the screen is relatively easy and plotting points in the Y-axis is not a problem, as the bytes (columns) can simply be offset to avoid messing up that axis and tick marks. The tick marks are at 5-pixel intervals.
The X-axis is a different story. Calculating that axis to determine what needs to be re-drawn can be done, but is messy. The ST7567 has only one controller for the entire screen, and it is very fast (no delays are needed). I would like to keep those advantages.
Here's a draft of what the screen template will look like. Up to three lines of additional data will be added to the right half of the screen. Ignore the unit spacings.

Options I have considered:
1) Get a version that allows reading DDRAM. That will require be a parallel interface for the ST7567.
2) Save an image of the display in program memory and update the whole display. The graph is currently 64x64 pixels. That is 8x64 = 512 bytes. A full write of the screen takes about 3.5 ms. Just half of the screen would be less.
3) Save only the bottom row and re-write that as needed. That will take a few more lines of code, but will be faster that doing option #2.
4) Move the abscissa to the "top" of a row and don't mess with it. That reduces the Y-axis range from about 64 to 56. That would allow a label of the axis.
I am tending toward options #1 or #4. Are there other alternatives? Opinions?
Regards, John
Controller = ST7567
Interface = SPI
MCU = PIC 16F enhanced, Fosc = 32 MHz, SPI = Fosc/4
The SPI interface does not allow reading DDRAM of the display. I am trying to graph Temp (Y-axis) v. Time (abscissa). Drawing the screen is relatively easy and plotting points in the Y-axis is not a problem, as the bytes (columns) can simply be offset to avoid messing up that axis and tick marks. The tick marks are at 5-pixel intervals.
The X-axis is a different story. Calculating that axis to determine what needs to be re-drawn can be done, but is messy. The ST7567 has only one controller for the entire screen, and it is very fast (no delays are needed). I would like to keep those advantages.
Here's a draft of what the screen template will look like. Up to three lines of additional data will be added to the right half of the screen. Ignore the unit spacings.

Options I have considered:
1) Get a version that allows reading DDRAM. That will require be a parallel interface for the ST7567.
2) Save an image of the display in program memory and update the whole display. The graph is currently 64x64 pixels. That is 8x64 = 512 bytes. A full write of the screen takes about 3.5 ms. Just half of the screen would be less.
3) Save only the bottom row and re-write that as needed. That will take a few more lines of code, but will be faster that doing option #2.
4) Move the abscissa to the "top" of a row and don't mess with it. That reduces the Y-axis range from about 64 to 56. That would allow a label of the axis.
I am tending toward options #1 or #4. Are there other alternatives? Opinions?
Regards, John