// output - sends commands to the motors void AP_Motors::output() { // update throttle filter update_throttle_filter(); // update max throttle update_max_throttle(); // update _recovery_pct update_recovery_pct(); // update battery resistance update_battery_resistance(); // calc filtered battery voltage and lift_max update_lift_max_from_batt_voltage(); // move throttle_low_comp towards desired throttle low comp update_throttle_thr_mix(); if (_flags.armed) { if (_flags.stabilizing) { output_armed_stabilizing(); } else { output_armed_not_stabilizing(); } } else { output_disarmed(); } };
// output - sends commands to the motors void AP_MotorsMulticopter::output() { // update throttle filter update_throttle_filter(); // update max throttle update_max_throttle(); // update battery resistance update_battery_resistance(); // calc filtered battery voltage and lift_max update_lift_max_from_batt_voltage(); // move throttle_low_comp towards desired throttle low comp update_throttle_thr_mix(); if (_flags.armed) { if (!_flags.interlock) { output_armed_zero_throttle(); } else if (_flags.stabilizing) { output_armed_stabilizing(); } else { output_armed_not_stabilizing(); } } else { _multicopter_flags.slow_start_low_end = true; output_disarmed(); } };
// throttle_loop - should be run at 50 hz // --------------------------- void Sub::throttle_loop() { // update throttle_low_comp value (controls priority of throttle vs attitude control) update_throttle_thr_mix(); // check auto_armed status update_auto_armed(); #if GNDEFFECT_COMPENSATION == ENABLED update_ground_effect_detector(); #endif // GNDEFFECT_COMPENSATION == ENABLED }
// throttle_loop - should be run at 50 hz // --------------------------- void Copter::throttle_loop() { // get altitude and climb rate from inertial lib read_inertial_altitude(); // update throttle_low_comp value (controls priority of throttle vs attitude control) update_throttle_thr_mix(); // check auto_armed status update_auto_armed(); #if FRAME_CONFIG == HELI_FRAME // update rotor speed heli_update_rotor_speed_targets(); // update trad heli swash plate movement heli_update_landing_swash(); #endif }
// throttle_loop - should be run at 50 hz // --------------------------- void Copter::throttle_loop() { // update throttle_low_comp value (controls priority of throttle vs attitude control) update_throttle_thr_mix(); // check auto_armed status update_auto_armed(); #if FRAME_CONFIG == HELI_FRAME // update rotor speed heli_update_rotor_speed_targets(); // update trad heli swash plate movement heli_update_landing_swash(); #endif // compensate for ground effect (if enabled) update_ground_effect_detector(); }
// throttle_loop - should be run at 50 hz // --------------------------- void Copter::throttle_loop() { // update throttle_low_comp value (controls priority of throttle vs attitude control) update_throttle_thr_mix(); // check auto_armed status update_auto_armed(); #if FRAME_CONFIG == HELI_FRAME // update rotor speed heli_update_rotor_speed_targets(); // update trad heli swash plate movement heli_update_landing_swash(); #endif #if GNDEFFECT_COMPENSATION == ENABLED update_ground_effect_detector(); #endif // GNDEFFECT_COMPENSATION == ENABLED }