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:
The millis() number reset to zero every 1h 11m 34s and 967ms.
According to the source code:
pros/src/rtos/tasks.c
Lines 2050 to 2062 in 1e07ae9
Ok, so we are using
uint32_t
and the maximum value is2^32 = 4294967296
At the same time. 1h 11m and 35s equal to
71*60*1000+35*1000 = 4295000
Please pay attention to line 2061,
return xTicks * configTICK_RATE_HZ / 1000;
That equals to
4295000 * 1000 / 1000
->4295000000 / 1000
and 4295000000 > 4294967296The millis() overflow.
Motivation:
Running a program for over an hour.
References (optional):
My time
Test Plan: