Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define DEFAULT_MONITOR_SPEED 115200
- #include <Arduino.h>
- #include <string.h>
- #include <math.h>
- struct Time
- {
- unsigned short int days;
- byte hours;
- byte mins;
- byte secs;
- unsigned short int millis;
- };
- void tickTime(Time &time);
- Time time = {0, 0, 0, 0};
- unsigned long usTime;
- void setup()
- {
- Serial.begin(DEFAULT_MONITOR_SPEED);
- usTime = micros();
- }
- void loop()
- {
- if (abs(micros() - usTime) >= 1000)
- {
- tickTime(time);
- usTime = micros();
- // Выводим время каждую мс
- String formattedTime = "Time: ";
- formattedTime.concat(time.days);
- formattedTime.concat("d : ");
- formattedTime.concat(time.hours);
- formattedTime.concat("h : ");
- formattedTime.concat(time.mins);
- formattedTime.concat("m : ");
- formattedTime.concat(time.secs);
- formattedTime.concat("s : ");
- formattedTime.concat(time.millis);
- formattedTime.concat("ms");
- Serial.println(formattedTime);
- }
- }
- void tickTime(Time &time)
- {
- time.millis += 1;
- if (time.hours >= 24)
- {
- time.hours -= 24;
- time.days += 1;
- }
- if (time.mins >= 60)
- {
- time.mins -= 60;
- time.hours += 1;
- }
- if (time.secs >= 60)
- {
- time.secs -= 60;
- time.mins += 1;
- }
- if (time.millis >= 1000)
- {
- time.millis -= 1000;
- time.secs += 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement