I recently had a problem using an SSD1306 on a PIC16F18313. The display would not show text until I reset the MCU by pulling the MCLR line low.
Looks like it's a charge pump delay problem. Something to do with the SSD1306_SETPRECHARGE handling. The only solution I've found so far is to call InitGLCD_SSD1306 explicitly at the start of my code - i.e. essentially calling it twice. I suspect you are not allowing enough of a precharge delay.
Incidentally, I note that it seems to be impossible to use PSet or any of the shape-drawing commands on a 16F18313, due to the nonexistence of the SSD1306_BufferAlias variable. The MCU doesn't possess sufficient SRAM for this array. Is there any workaround for this?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I recently had a problem using an SSD1306 on a PIC16F18313. The display would not show text until I reset the MCU by pulling the MCLR line low.
Looks like it's a charge pump delay problem. Something to do with the
SSD1306_SETPRECHARGE
handling. The only solution I've found so far is to callInitGLCD_SSD1306
explicitly at the start of my code - i.e. essentially calling it twice. I suspect you are not allowing enough of a precharge delay.Incidentally, I note that it seems to be impossible to use
PSet
or any of the shape-drawing commands on a 16F18313, due to the nonexistence of theSSD1306_BufferAlias
variable. The MCU doesn't possess sufficient SRAM for this array. Is there any workaround for this?What version are you using?
These issues are resolved since latest release.