So,
bin heute zum Testen gekommen: Mit der Änderung (uint16_t gps_alt_m=9999; ) gibt es keine Probleme mehr. Ich habe GAM und GPS einkommentiert und hatte auch keine Aussetzer mehr. Getestet habe ich bis ca. 160m Höhe und 3 Akkus leergeflogen.
Ausserdem habe ich noch ein paar Änderungen am Code vorgenommen:
In Message.cpp an jeder der 4 Seiten der GPS Konfiguration:
else if (id_key == HOTT_KEY_SET && ligne_edit == -1)
//ligne_edit = ligne_select ; // JB auskomm.
is_set_home = 0; //JB neu
Zum einen hatte sich das Einstellmenü aufgehängt, wenn ich im GPS Menü die Set-Taste gedrückt habe, zum anderen hat man so eine schöne Möglichkeit bei falschen Startpunkt bzw. bei falscher Home-Höhe im Menü (z.B. nach einger Zeit wenn der GPS-Fix wirklich steht) nochmal neue Startkoordinaten u. Höhe zu setzen.
----
Da ich im DJI Phantom den Balancer Stecker nicht am Sensor anschließen möchte habe ich nur einen Spannungsteiler fest auf die Akkuspannung verdrahtet und in der Firmware die Koeffizenten passend abgeändert, so dass für 3 Zellen dreimal vom gleichen ADC gelesen wird und somit quasi Einzelzellenspannungen entstehen... Nicht schön aber ne Möglichkeit mit geringem Aufwand die Gesamtspannung zum Messen ohne den Code großartig anzupassen.
#define COEF_LIPO1 0.0047044200 // Zelle3 : 3
#define COEF_LIPO2 0.0094088485 // Zelle3 :3 * 2 fuer 2. Zelle
#define COEF_LIPO3 0.0141132728 // Zelle 3 Koeff ermittelt: 0,0141132727604
#define COEF_LIPO4 0.0 // Zelle 4,5,6 nicht vorhanden
#define COEF_LIPO5 0.0
#define COEF_LIPO6 0.0
...
MV10 = mesure(A0)* COEF_LIPO1;
...
MV10 = mesure(A0)* COEF_LIPO2; // JB Quick & Dirty Gesamtspannung alt: MV10 = mesure(A1)* COEF_LIPO2;
...
MV10 = mesure(A0)* COEF_LIPO3; // JB Quick & Dirty Gesamtspannung alt: MV10 = mesure(A2)* COEF_LIPO3;
----
Was mir nun noch gegenüber dem OSD fehlt ist die Strom und Kapazitätsmessung!!!
Zur Höhe:
Das hier könnte ein Problem sein (habs noch nicht ausprobiert):
uint8_t gps_alt_m=9999;
besser:
uint16_t gps_alt_m=9999;