diff --git a/doc/TODO allgemein.txt b/doc/TODO allgemein.txt index 0719e08..ae1a25d 100644 --- a/doc/TODO allgemein.txt +++ b/doc/TODO allgemein.txt @@ -17,22 +17,31 @@ Do later: -> Menu Display from parent as run() to make Menu as Component -> Racing Mode -> ConsolControl + -> Menü für Sensordaten (kann in jedem Betriebsmodus aufgerufen werden) + - GNSS + - Ntrip + - CalcCompass + - RealCompass + - Gyroskop + - Geschwindigkeiten (vielleicht) + -> Menü für Einstellungen + - PID + - Geschwindigkeiten + -> Battery + - tabelle mit eigenen Werten übergeben und nicht in header (wiederverwendbarkeit) + - kalibrierungsmethode mit Menü + - Daten in flash speichern können + Do now: Code: Doxygen Kommentare aktualisieren - Geschwindigkeiten außerhalb von Modi einstellen, Manager kann die Werte einstellen da Interface Automat in MoveControl weil jetzt in Arbeit beschrieben Liste mit Betriebsmodi, automatisch in Menü einfügen - Betriebmodi dem Drivemanger ohne switchCase geben, aus Liste oder so - bettery managment checken, buffer in battery und in Main - battery tabelle mit eigenen Werten übergeben und nicht in header (wiederverwendbarkeit) - battery methode für daten erzeugen und in eeporm speichern battery bruch mit R werten nur einmal berechnen lange kein daten von fernbedienung dann? Input pointer von fernbedienung nicht veränderbar doppel const trennen funktion und ui route menü - DriveManager Mode als Template übergeben Latex: Genaue Beschreibung von PulseCounter HardwareUnit wenn möglich diff --git a/lib/Battery/battery.cpp b/lib/Battery/battery.cpp index d13e496..5a7bd96 100644 --- a/lib/Battery/battery.cpp +++ b/lib/Battery/battery.cpp @@ -15,6 +15,7 @@ Battery::Battery(uint8_t pin, uint32_t r1, uint32_t r2) { this->pin = pin; this->r1 = r1; this->r2 = r2; + this->batteryVoltageFactor = (double) (this->r1 + this->r2)) / (double) this->r2 this->initBuffer(); this->loopDelay = 100; } @@ -71,7 +72,7 @@ double Battery::calculateInputVoltage() { void Battery::calculateBatteryVoltage() { if (this->r1 && this->r2) { - this->batteryVoltage = (this->calculateInputVoltage() * (double) (this->r1 + this->r2)) / (double) this->r2; + this->batteryVoltage = (this->calculateInputVoltage() * this->batteryVoltageFactor; return; } diff --git a/lib/Battery/battery.h b/lib/Battery/battery.h index f6837be..e0b9f38 100644 --- a/lib/Battery/battery.h +++ b/lib/Battery/battery.h @@ -88,13 +88,14 @@ class Battery : public Component { uint8_t batteryPercent = 0; uint8_t batteryLowPercent = 10; uint8_t bufferPos = 0; - uint8_t calulationDelayMultiplier = 10; + uint8_t calulationDelayMultiplier = 5; uint8_t loopCounter = 0; uint16_t adcBuffer[bufferSize]; uint32_t r1 = 0; uint32_t r2 = 0; bool calculatetNewValues = false; double batteryVoltage = 0; + double batteryVoltageFactor; const float capacityVoltages[21] = {9.82, 10.83, 11.06, 11.12, // 0 5 10 15 11.18, 11.24, 11.3, 11.36, // 20 25 30 35 diff --git a/src/main.cpp b/src/main.cpp index 09b1ec8..15a814c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -154,6 +154,7 @@ void loop() { lcdWrapper->loop(); mainBattery->loop(); + // new Value ervery 0.5s if (mainBattery->isNewValue()) { static uint8_t batteryLowCounter = 0; if (mainBattery->isBatteryLow(10))