Resuming an 0.96" Adafruit 0led display

Hello

I have an Adafruiit 0.96" display... used them many times before. Connected on I2c to a Pro Mini.

However, I have other devices on the same bus. This seems to be causing un-required grief.

At the beginning of the program, I declare the usual:

Adafruit_SSD1306 display(OLED_RESET);
display.begin(SSD1306_SWITCHCAPVCC, 0x3c);

OLED_RESET is set to -1 by the way.

I can write to the screen fine, but once I access anything else on the I2C bus (such as a pair of MCP23017s), then screen then will not accept any further commands without the original Reset and display.begin being declared again. Never had to do that before.

Further more, if there is a line to say draw a line in the code in it's own sub-routine, it won't compile without those 2 commands first (throws up a display was not declared error).
So I end up with the reset and begin commands many times over.

Does anyone know of a Oled resume type command for the I2C bus? Doesn't seem right to use display.begin every time.
Furthermore, when I call the displaybegin, it recalls the Adafruit logo.... not wanted!

Any ideas?

When I get home, I will upload the code

As always.... work it out after hours of looking 2 minutes after posting in the forum ...

Declared the original setup outside of the program header, so it wasn't visible to the rest of the program.

Moved the original setup files to the head of the program (I had them in a routine where they were only called if the display was actually present) and the problem is solved.