Add sub-ms resolution for time.monotonic_ns, on samd and nrf ports #2342
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This also addresses a problem where current_tick() / wait_until() could be wrong by 1ms on nRF, by copying systick code from the samd port.
Testing performed: on pyportal and cpb, looked at
time.monotonic_ns
values. The values always went forward, and usually by "consistent" amounts in a small loop:On samd builds, this new code isn't enabled for small builds to avoid increasing code size. So those boards will still have just 1ms resolution in monotonic_ns. Also, the resolution of time.monotonic isn't increased, since very soon after boot even 1ms resolution is not possible in CP floating-point values.