diff --git a/platforms/posix/src/px4_layer/drv_hrt.cpp b/platforms/posix/src/px4_layer/drv_hrt.cpp index 06b3e5d764..874ce5db3a 100644 --- a/platforms/posix/src/px4_layer/drv_hrt.cpp +++ b/platforms/posix/src/px4_layer/drv_hrt.cpp @@ -205,7 +205,7 @@ hrt_abstime ts_to_abstime(const struct timespec *ts) * This function is safe to use even if the timestamp is updated * by an interrupt during execution. */ -hrt_abstime hrt_elapsed_time(const volatile hrt_abstime *then) +hrt_abstime hrt_elapsed_time(const hrt_abstime *then) { hrt_abstime delta = hrt_absolute_time() - *then; return delta; diff --git a/src/modules/px4iofirmware/controls.c b/src/modules/px4iofirmware/controls.c index 650a84db03..25129b778a 100644 --- a/src/modules/px4iofirmware/controls.c +++ b/src/modules/px4iofirmware/controls.c @@ -460,7 +460,7 @@ controls_tick() * If we haven't seen any new control data in 200ms, assume we * have lost input. */ - if (!rc_input_lost && hrt_elapsed_time(&system_state.rc_channels_timestamp_received) > 200000) { + if (!rc_input_lost && hrt_elapsed_time_atomic(&system_state.rc_channels_timestamp_received) > 200000) { rc_input_lost = true; /* clear the input-kind flags here */ diff --git a/src/modules/px4iofirmware/mixer.cpp b/src/modules/px4iofirmware/mixer.cpp index c873c6f220..b6fbf261c0 100644 --- a/src/modules/px4iofirmware/mixer.cpp +++ b/src/modules/px4iofirmware/mixer.cpp @@ -119,7 +119,7 @@ mixer_tick(void) /* check that we are receiving fresh data from the FMU */ if ((system_state.fmu_data_received_time == 0) || - hrt_elapsed_time(&system_state.fmu_data_received_time) > FMU_INPUT_DROP_LIMIT_US) { + hrt_elapsed_time_atomic(&system_state.fmu_data_received_time) > FMU_INPUT_DROP_LIMIT_US) { /* too long without FMU input, time to go to failsafe */ if (r_status_flags & PX4IO_P_STATUS_FLAGS_FMU_OK) {