Fixes problems with the rtc::Rtc
abstraction and refactors to use the new rtc::modes
abstractions.
#845
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.
Summary
It was discovered that the
rtc::Rtc
abstraction does not work properly, at least on SAMx5x targets. This was previously reported and discussed in issue #501, but it looks like a cause was never really nailed down.This PR effectively re-writes the RTC with the same API, expanding and leveraging the new private
rtc::modes
abstractions that were written for the RTC-based RTIC monotonic.Refer the to commit message for some additional details.
I wanted to get this PR going, and the code is ostensibly complete. However, I have only tested all implemented RTC features/modes on the PyGamer (SAMD51) so far, see here. I have a Metro M0 (SAMD21) on order with a display, so I will test on that as well and report back when it arrives.
Checklist
#[allow]
certain lints where reasonable, but ideally justify those with a short comment.