Hm...
Ich versteh nicht, warum Du dafür sowohl outputPinDP als auch displayOn brauchst.
wenn ich den display on setze, dann merke ich mir die Zeit - oder baue einen Zähler.
// Ausgabe OLED-Display
void oledDisplay()
{
const uint32_t intervall = 2000;
static uint32_t lastmillis = 0;
static byte page = 0;
static uint16_t nachlauf = 0;
// Ausgabe OLED-Display
// OLED-Display einschalten
if (page == 0) // kein display gewählt
{
if (digitalRead(displayOn) == LOW)// und Taste gedrueckt
{
lastmillis = millis(); // setze Startzeit
nachlauf = 0;
page = 1;
Serial.println(F("Display ein!"));
}
}
else if (millis() - lastmillis >= intervall) // zeit abgelaufen
{
lastmillis += intervall;
if (page > 5) page = 1;
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 0);
Serial.print("page = "); // Test; entfällt später
Serial.println(page); // Test; entfällt später
switch (page)
{
case 1:
// Solar
display.println(F("Solarzelle"));
schreibeDisplayVolt();
display.print(voltMess(page), 1);
schreibeDisplayRest();
break;
case 2:
// Accu 1
display.println(F("Accu 1"));
schreibeDisplayVolt();
display.print(voltMess(page), 1);
schreibeDisplayRest();
break;
case 3:
// Accu 2
display.println(F("Accu 2"));
schreibeDisplayVolt();
display.print(voltMess(page), 1);//
schreibeDisplayRest();
break;
case 4:
// Pause
display.println(F("Pause"));
//schreibeDisplayVolt();
//display.print(voltMess(page), 1);//
//schreibeDisplayRest();
break;
case 5:
if (digitalRead(displayOn) == HIGH)
{
if (nachlauf > 1000)
{
page = 0;
display.clearDisplay();
}
else nachlauf++;
}
break;
display.display();
}
page++;
}
}
Rein aus dem Kopf; Das Netbook ist jetzt auch noch down - war ein langer Betriebstag...
Ich mach heute abend weiter, wenn ich was gehört habe
Na denne - Gute Nacht.