mirror of https://github.com/ARMmbed/mbed-os.git
check for instantaneous callback before checking for repeat callback.
parent
b7cd6b6ae8
commit
90354c0a23
|
@ -188,15 +188,15 @@ void us_ticker_set_interrupt(timestamp_t timestamp)
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t callbackTime = MICROSECONDS_TO_RTC_UNITS(timestamp);
|
uint32_t callbackTime = MICROSECONDS_TO_RTC_UNITS(timestamp);
|
||||||
if (us_ticker_callbackPending && (callbackTime == us_ticker_callbackTimestamp)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (callbackTime == rtc1_getCounter()) {
|
if (callbackTime == rtc1_getCounter()) {
|
||||||
us_ticker_callbackPending = false;
|
us_ticker_callbackPending = false;
|
||||||
rtc1_disableCompareInterrupt();
|
rtc1_disableCompareInterrupt();
|
||||||
us_ticker_irq_handler();
|
us_ticker_irq_handler();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (us_ticker_callbackPending && (callbackTime == us_ticker_callbackTimestamp)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
NRF_RTC1->CC[0] = callbackTime & MAX_RTC_COUNTER_VAL;
|
NRF_RTC1->CC[0] = callbackTime & MAX_RTC_COUNTER_VAL;
|
||||||
us_ticker_callbackTimestamp = callbackTime;
|
us_ticker_callbackTimestamp = callbackTime;
|
||||||
|
|
Loading…
Reference in New Issue