Extend os_get_current_time_us bits by helper#18
Open
elupus wants to merge 1 commit intortlabs-com:masterfrom
Open
Extend os_get_current_time_us bits by helper#18elupus wants to merge 1 commit intortlabs-com:masterfrom
elupus wants to merge 1 commit intortlabs-com:masterfrom
Conversation
tick_to_ms is not guaranteed to wrap at 32bit boundary if tick speed is not set to 1ms per tick. It will also regress to low precision (1second) when the tick count is larger than UINT32_MAX / 1000.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Extend the timer used to 64bit by keeping track of when it wraps
Background
When kernel is running at tick rate different from 1000 ticks per seconds:
This lead to issues when os_get_current_time_us is used as a periodic timing manager as in the following example:
This is welled formed if os_get_current_time_us() always wraps around at 32bit max boundary, but lead to unexpected behaviour otherwise.