Arduino-MS5611 Library aufgebohrt

Hallo zusammen,

ich habe die Arduino Lib https://github.com/jarzebski/Arduino-MS5611
modifiziert: https://github.com/nichtgedacht/Arduino-MS5611-Interrupt

Für Eigenbausensoren (Variometer etc.) steht nun die Zeit die die MCU
bisher mit Warten auf die AD-Wandlung verbringt zum Rechnen zur Verfügung.

Für ein einfaches Variometer sieht die Hauptschleife z.B. so aus:

Code:
void loop () {

    if (ms5611.data_ready) { 12.5 ms if MS5611_ULTRA_HIGH_RES, MS5611_STANDARD (P-, T-Resolution)

        long realPressure = ms5611.getPressure (true);
        double relativeAltitude = ms5611.getAltitude (realPressure, referencePressure);

        r_altitude0 = r_altitude0 - 0.076923  * (r_altitude0 - relativeAltitude); // dt 12500 us T = 0.15
        r_altitude = r_altitude - 0.04 * (r_altitude - relativeAltitude);         //             T = 0.3

        climb0 = (r_altitude0 - r_altitude) * 6.66667;   // dt 12500 us
        climb = climb - 0.1111 * ( climb - climb0 );     // T = 0.1

        Serial.println (climb);
    }
}

Mit Nutzung einer Telemetrie Library kann der Wert stattdessen zum RC-Empfänger
geschrieben werden.

Gruß
Dieter
 
Hallo Dieter
SUPER :)

Genau dasselbe Gehuddel hatte ich letzte Woche, weil ich ein BMP180 mit in die Solarsteuerung mit reintüddeln wollte, da muss die Regelschleife in 500Hz durchrennen, ich habe alle 2mS etwa eine halbe mS für Telemetriezeug, der Rest gehört dann der Solarregelschleife.
http://www.rc-network.de/forum/show...Solarflieger?p=4689957&viewfull=1#post4689957

Die typischen BMP085/185 Librarys warten da 5mS und dann nochmal 26mS, und nblockiert solange meine komplette Steuerung :D Diverse "Non-blocking-Codes" aus dem Netz brachten auch keine Erleuchtung, habe dann angefangen alles in C direkt zu schreiben aber wie da immer so ist..... ;)
 
Ansicht hell / dunkel umschalten
Oben Unten