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();
}
Lesezeichen