Arduino library to get the device uptime.
Max runtime is "limited" to 136 to 179.years. See Note* in "Uptime.h" for more info. Lines 11 to 15.
Uptime library for Arduino.
Shows device uptime in: years, months, days, hours, minutes, seconds, milliseconds, total days and total seconds.
Based on 365-day calendar year.
Keep in mind that the oscillator is not 100.% accurate, and is sensitive to temperature and supply voltage fluctuation.
A crystal oscillator is about 0.005% accurate.
A ceramic oscillator is about 0.5% accurate.
The following functions are implemented:
-
void calculateUptime(); <-- First call this to calculate the uptime.
-
const uint8_t getYears();
-
const uint8_t getMonths();
-
const uint8_t getDays();
-
const uint8_t getHours();
-
const uint8_t getMinutes();
-
const uint8_t getSeconds();
-
const uint32_t getMilliseconds();
-
const uint16_t getTotalDays();
-
const uint32_t getTotalSeconds();
char arrays are made with snprintf_P = flash memory. It can be change to SRAM in the "UptimeString.h" library @ line 30.
-
char * getUptime1(); = xx.Years, xx.Months, xx.Days, xx.hours, xx.minutes, xx.seconds < Shows full uptime string.
-
char * getUptime2(); = xx.Y, xx.M, xx.D, xx.h, xx.m, xx.s < Shows elapsed uptime, with short text.
-
char * getUptime3(); = xx.Years, xx.Months, xx.Days, xx.hours, xx.minutes, xx.seconds < Shows elapsed uptime, with long text.
-
char * getUptime4(); = xx.Years, xx.Months, xx.Days, xx.hours, xx.min, xx.sec, xxxx.millis < Shows full uptime string with millis.
Years: 0
Months: 0
Days: 0
Hours: 3
Minutes: 1
Seconds: 21
Milliseconds: 0
Total Days: 0
Total Seconds: 10881
... @ Startup.
0.Years, 0.Months, 0.Days, 0.hours, 0.minutes, 1.seconds
0.Years, 0.Months, 0.Days, 0.hours, 0.minutes, 2.seconds
0.Years, 0.Months, 0.Days, 0.hours, 0.minutes, 3.seconds
0.Years, 0.Months, 0.Days, 0.hours, 0.minutes, 4.seconds
... @ First day.
0.Years, 0.Months, 0.Days, 23.hours, 59.minutes, 58.seconds
0.Years, 0.Months, 0.Days, 23.hours, 59.minutes, 59.seconds
0.Years, 0.Months, 1.Days, 0.hours, 0.minutes, 0.seconds
0.Years, 0.Months, 1.Days, 0.hours, 0.minutes, 1.seconds
... @ First month.
0.Years, 0.Months, 29.Days, 23.hours, 59.minutes, 58.seconds
0.Years, 0.Months, 29.Days, 23.hours, 59.minutes, 59.seconds
0.Years, 1.Months, 0.Days, 0.hours, 0.minutes, 0.seconds
0.Years, 1.Months, 0.Days, 0.hours, 0.minutes, 1.seconds
... @ Second month.
0.Years, 1.Months, 30.Days, 23.hours, 59.minutes, 58.seconds
0.Years, 1.Months, 30.Days, 23.hours, 59.minutes, 59.seconds
0.Years, 2.Months, 0.Days, 0.hours, 0.minutes, 0.seconds
0.Years, 2.Months, 0.Days, 0.hours, 0.minutes, 1.seconds
... @ Third month.
0.Years, 2.Months, 29.Days, 23.hours, 59.minutes, 58.seconds
0.Years, 2.Months, 29.Days, 23.hours, 59.minutes, 59.seconds
0.Years, 3.Months, 0.Days, 0.hours, 0.minutes, 0.seconds
0.Years, 3.Months, 0.Days, 0.hours, 0.minutes, 1.seconds
... @ One year.
0.Years, 11.Months, 29.Days, 23.hours, 59.minutes, 58.seconds
0.Years, 11.Months, 29.Days, 23.hours, 59.minutes, 59.seconds
1.Years, 0.Months, 0.Days, 0.hours, 0.minutes, 0.seconds
1.Years, 0.Months, 0.Days, 0.hours, 0.minutes, 1.seconds
... @ Startup.
1.s
... @ One year.
1.Y, 0.M, 0.D, 0.h, 0.m, 0.s
... @ Startup.
1.seconds
... @ One year.
1.Years, 0.Months, 0.Days, 0.hours, 0.minutes, 0.seconds
... @ Startup.
0.Years, 0.Months, 0.Days, 0.hours, 0.min, 1.sec, 11.millis
... @ One year.
1.Years, 0.Months, 0.Days, 0.hours, 0.min, 0.sec, 10.millis
See examples.
Most time is spend converting millis to seconds, minutes, hours and total days.