Skip to content

Commit f771d0c

Browse files
author
Amanda Butler
authored
Merge pull request #491 from c1728p9/lp_ticker_info
Add synchronization delay section in lp ticker
2 parents f58c92b + da45c66 commit f771d0c

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

docs/reference/contributing/target/lp_ticker.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ Be careful around these common trouble areas when implementing this API:
3636
- The ticker keeps counting when it rolls over
3737
- The ticker interrupt fires when the compare value is set to 0 and and overflow occurs
3838

39+
#### Handling synchronization delay
40+
41+
Some low power tickers require multiple low power clock cycles for the compare value that `ticker_set_interrupt` sets to take effect. Further complicating this issue, a new compare value typically cannot be set until the first has taken effect. Because of this, when you make back-to-back calls to `ticker_set_interrupt` without a delay, the second call blocks and violates the above requirement that `ticker_set_interrupt` completes in 20us.
42+
43+
To meet this timing requirement, targets that have this synchronization delay must set `LOWPOWERTIMER_DELAY_TICKS` to the number of low power clock cycles it takes for a call to `ticker_set_interrupt` to take effect. When the targets set this value, the timer code prevents `lp_ticker_set_interrupt` from being called twice within that number of clock cycles. It does this by using the microsecond time to schedule the write to happen at a future date.
44+
3945
### Dependencies
4046

4147
Hardware low power ticker capabilities.

0 commit comments

Comments
 (0)