AP_InertialSensor_MPU9250: use micros64() and millis64()

This commit is contained in:
Andrew Tridgell 2014-08-20 08:02:34 +10:00
parent 071323a736
commit a14f8dbd0a
2 changed files with 6 additions and 6 deletions

View File

@ -257,7 +257,7 @@ uint16_t AP_InertialSensor_MPU9250::_init_sensor( Sample_rate sample_rate )
*/
bool AP_InertialSensor_MPU9250::_sample_available()
{
uint32_t tnow = hal.scheduler->micros();
uint64_t tnow = hal.scheduler->micros64();
while (tnow - _last_sample_usec > _sample_time_usec) {
_have_sample_available = true;
_last_sample_usec += _sample_time_usec;
@ -273,10 +273,10 @@ bool AP_InertialSensor_MPU9250::wait_for_sample(uint16_t timeout_ms)
if (_sample_available()) {
return true;
}
uint32_t start = hal.scheduler->millis();
while ((hal.scheduler->millis() - start) < timeout_ms) {
uint32_t tnow = hal.scheduler->micros();
uint32_t tdelay = (_last_sample_usec + _sample_time_usec) - tnow;
uint64_t start = hal.scheduler->millis64();
while ((hal.scheduler->millis64() - start) < timeout_ms) {
uint64_t tnow = hal.scheduler->micros64();
uint64_t tdelay = (_last_sample_usec + _sample_time_usec) - tnow;
if (tdelay < 100000) {
hal.scheduler->delay_microseconds(tdelay);
}

View File

@ -45,7 +45,7 @@ private:
AP_HAL::Semaphore *_spi_sem;
uint32_t _sample_time_usec;
uint32_t _last_sample_usec;
uint64_t _last_sample_usec;
// ensure we can't initialise twice
bool _initialised;