-
Das große Problem ist, dass Dir vermutich Signale abhanden kommen, da in deinem Programm doch noch "reichlich" anderer Code ausgeführt wird.
Alleine die Floating Point Berechnungen auf dem kleinen 8 Bit Controller fressen schon viel Zeit.
dann sehe ich da Grafikfunktionen. Das schafft der Controller nicht mit dieser Programmiertechnik,
da kommt man eigentlich nicht drumherum mit Interrupts für den Impulsgeber zu arbeiten.
Du könntest Dir eventuell noch behelfen indem Du so oft wie möglich deine ui Funktion aufrufst,
quasi nach jeder anderen Softwarezeile, sieht kacke aus und das macht man eigentlich auch nicht, aber Versuchs mal.
Code:
void loop(void)
{
time = millis();
ui();
u8g2.clearBuffer();
ui();
// akkustand();
if(time < timeout)
{
u8g2.setFont(u8g2_font_crox3h_tf);
ui();
u8g2.setFontRefHeightExtendedText();
ui();
u8g2.setDrawColor(1);
ui();
u8g2.setFontPosTop();
ui();
u8g2.setFontDirection(0);
ui();
u8g2.drawStr(18, 0, "K2-Box V 0.3");
ui();
u8g2.drawLine(0, 18, 128, 18);
ui();
u8g2.drawLine(0, 50, 128, 50);
ui();
power();
ui();
// debug();
}
-
Irgendwie habe ich mir das schon gedacht. Nun, dann sollte ich mir das mit den Interrupts mal genauer anschauen. Kann ja nicht schaden wenn man das versteht. Wenn nicht, mit den vielen ui() würde es mit Sicherheit funktionieren. Sieht aber tatsächlich sehr unschön aus. Wenn das alles nicht hilft, werde ich wohl abspecken müssen. Gibt noch andere, harmloserer Libs, um das Display anzusteuern. Sieht dann aber nicht mehr so schön aus, also die Anzeige. Aber besser als wenn es gar nicht funktioniert.
- - - Aktualisiert - - -
Jetzt bin ich etwas erschüttert! Nach 5 Minuten lesen musste ich feststellen, die Interrupts sind ja gar keine Herausforderung! Jetzt habe ich meinen Sketch auf Interrupt umgestellt und man glaubt es kaum, es funktioniert perfekt!
Vielen, vielen Dank für deine Hilfe!