Comments (2)
By default it uses the basic millis() function. However you can use a function pointer instead so you could design your own timing function using a RTC for example.
from chrono.
Because of overflow math, the timer should function properly. Here is an explanation:
Chrono uses the following code (millis() - previous_millis >= interval_millis)
to calculate if a Chrono has passed a certain interval.
The maximum value for an unsigned long is 4,294,967,295. If you add 1 to 4,294,967,295, you rollover to 0. If you subtract 1 to 0, you get 4,294,967,295.
For an actual example, lets say that previous_millis
= 4,294,967,200 and interval_millis
= 100:
- If millis() is 4,294,967,250,
millis() - previous_millis
gives (4,294,967,250 - 4,294,967,200) = 50 and the function will return false (i.e. has not passed the interval of 100) - Once millis() overflows and reaches 0,
millis() - previous_millis
returns (0 - 4,294,967,200) = -4,294,967,200 = 96 with overflow and will return false (i.e. has not passed the interval) - Once millis() reaches 4,
millis() - previous_millis
returns (4 - 4,294,967,200) = -4,294,967,196 = 100 with overflow and this will return true (i.e. has passed the interval)
from chrono.
Related Issues (11)
- When I compile on Arduino it comes out this error HOT 2
- myChrono.start() HOT 2
- myTimer.elapsed() HOT 16
- Chrono Timer(Chrono::SECONDS, false); HOT 4
- keywords.txt HOT 1
- V1.01 is not available in Arduino Library Manager HOT 2
- Add Chrono ArduBadge Badge HOT 2
- Missing stop_reset function HOT 20
- Deprecate restart() HOT 1
- Why is offset typed as "chrono_t long _offset" ? HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chrono.