AP_Scheduler: added get_last_loop_time_s()

this gives compatibility with previous G_Dt in copter
This commit is contained in:
Andrew Tridgell 2018-02-12 14:42:54 +11:00
parent f436901517
commit 491715bec7
2 changed files with 16 additions and 5 deletions

View File

@ -213,8 +213,11 @@ void AP_Scheduler::loop()
const uint32_t sample_time_us = AP_HAL::micros(); const uint32_t sample_time_us = AP_HAL::micros();
if (loop_timer_start_us == 0) { if (_loop_timer_start_us == 0) {
loop_timer_start_us = sample_time_us; _loop_timer_start_us = sample_time_us;
_last_loop_time_s = get_loop_period_s();
} else {
_last_loop_time_s = (sample_time_us - _loop_timer_start_us) * 1.0e-6;
} }
// Execute the fast loop // Execute the fast loop
@ -241,9 +244,9 @@ void AP_Scheduler::loop()
#endif #endif
// check loop time // check loop time
perf_info.check_loop_time(sample_time_us - loop_timer_start_us); perf_info.check_loop_time(sample_time_us - _loop_timer_start_us);
loop_timer_start_us = sample_time_us; _loop_timer_start_us = sample_time_us;
} }
void AP_Scheduler::update_logging() void AP_Scheduler::update_logging()

View File

@ -131,6 +131,11 @@ public:
float get_filtered_loop_time(void) const { float get_filtered_loop_time(void) const {
return perf_info.get_filtered_time(); return perf_info.get_filtered_time();
} }
// get the time in seconds that the last loop took
float get_last_loop_time_s(void) const {
return _last_loop_time_s;
}
static const struct AP_Param::GroupInfo var_info[]; static const struct AP_Param::GroupInfo var_info[];
@ -185,8 +190,11 @@ private:
uint8_t _spare_ticks; uint8_t _spare_ticks;
// start of loop timing // start of loop timing
uint32_t loop_timer_start_us; uint32_t _loop_timer_start_us;
// time of last loop in seconds
uint32_t _last_loop_time_s;
// performance counters // performance counters
AP_HAL::Util::perf_counter_t *_perf_counters; AP_HAL::Util::perf_counter_t *_perf_counters;