fix stack overflow

This commit is contained in:
Samuel Sadok
2020-09-28 19:01:18 +02:00
parent 9e090a07a6
commit e1c7ddbafa
+8 -5
View File
@@ -247,11 +247,11 @@ void Motor::apply_pwm_timings(uint16_t timings[3], bool tentative) {
* motor phases are floating and will not be enabled again until
* arm() is called.
*/
bool Motor::disarm(bool* was_armed) {
bool dummy;
was_armed = was_armed ? was_armed : &dummy;
bool Motor::disarm(bool* p_was_armed) {
bool was_armed;
CRITICAL_SECTION() {
*was_armed = is_armed_;
was_armed = is_armed_;
if (is_armed_) {
gate_driver_.set_enabled(false);
}
@@ -267,6 +267,10 @@ bool Motor::disarm(bool* was_armed) {
update_brake_current();
}
if (p_was_armed) {
*p_was_armed = was_armed;
}
return true;
}
@@ -316,7 +320,6 @@ bool Motor::setup() {
void Motor::disarm_with_error(Motor::Error error){
error_ |= error;
disarm();
update_brake_current();
}
bool Motor::do_checks(uint32_t timestamp) {