From 71efabe590e3a2f623ea1665854ac7352a7c835f Mon Sep 17 00:00:00 2001 From: Felix Ruess Date: Tue, 30 Jul 2013 16:38:10 +0200 Subject: [PATCH] [rotorcraft] only reset psi and integrators if previous mode was not attitude --- sw/airborne/firmwares/rotorcraft/guidance/guidance_h.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sw/airborne/firmwares/rotorcraft/guidance/guidance_h.c b/sw/airborne/firmwares/rotorcraft/guidance/guidance_h.c index 44d11f3b29..39995aad2f 100644 --- a/sw/airborne/firmwares/rotorcraft/guidance/guidance_h.c +++ b/sw/airborne/firmwares/rotorcraft/guidance/guidance_h.c @@ -139,7 +139,11 @@ void guidance_h_mode_changed(uint8_t new_mode) { stabilization_attitude_reset_care_free_heading(); case GUIDANCE_H_MODE_FORWARD: case GUIDANCE_H_MODE_ATTITUDE: - stabilization_attitude_enter(); + /* reset attitude stabilization if previous mode was not using it */ + if (guidance_h_mode == GUIDANCE_H_MODE_RC_DIRECT || + guidance_h_mode == GUIDANCE_H_MODE_RATE) { + stabilization_attitude_enter(); + } break; case GUIDANCE_H_MODE_HOVER: