Hi,
I hope this is the right place to put my question (My first post at all).
my problem is not very easy to describe, but i'll try.
As the topic says its all about the I2C OLED 128x64 Display (SSD1306). There is the very nice library by adafuit, but since I need PCINT it does not work for me (as far as I could see, when I tried it out).
I found the u8glib which does not affect the PCINT. So far so good, but I need a very short cycletime and this library lets the cycletime literally explode (just reffering to my own sketch of course).
That was the point when I copied the display-part of the MultiWii firmware from "LCD.cpp". Everything within the "#if defined(OLED_I2C_128x64)" . Its basic, but very fast and quiet easy to understand. It works very well for my stuff.
But now to the interesting part:
I'll describe a scenario that makes the problem obvious, I hope.
1 Uploading an example-sketch of any of the library mentioned above (adafriut, u8glib)
2 display works fine
3 DON'T disconnect the usb connection (power supply)
4 Upload my sketch
5 Works fine
6 Diconnect power supply
7 reconnect to power
8 code runs without a problem, but display shows nothing/stays off
-so you can see, that only if i leave the display powered on, it works properly with my sketch but as soon as I disconnect it from 5V it doesn't
9 uploading my sketch with the following lines, it works perfectly and reliable:
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST);
So... to me it seems that there is some kind of "start command" or anything like that to tell the display to start up.
Now, if it is as simple as it seems to me, I would love ( and I need) to save the memory that is used by the library, I don't even use.
If somebody knows anything about that, I would be more than happy to learn from you, so please, help me with this.
kind regards
Fabian
PS: unfortunately i can't show you my code. That would exceed the 9000 chars.