Stopwatch library with start, stop, and getTime functions. Returns a 00:00:00 in MM:SS:MS format with a max duration of ~30min per documentation on the Timer class. Can easily be output through an LCD/TFT with printf(stopwatch.getTime());
Fork of Stopwatch by
Stopwatch.cpp@2:2202f5336acb, 2013-05-08 (annotated)
- Committer:
- fox46
- Date:
- Wed May 08 09:16:46 2013 +0000
- Revision:
- 2:2202f5336acb
- Parent:
- 1:bb9b4593a013
added gettimeFshort, shorter formated "0:00:0"
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mdomino | 0:3328857bf625 | 1 | #include "Stopwatch.h" |
mdomino | 0:3328857bf625 | 2 | #include "mbed.h" |
mdomino | 0:3328857bf625 | 3 | |
mdomino | 0:3328857bf625 | 4 | Stopwatch::Stopwatch() { |
mdomino | 0:3328857bf625 | 5 | // constructor |
mdomino | 0:3328857bf625 | 6 | } |
mdomino | 0:3328857bf625 | 7 | |
mdomino | 0:3328857bf625 | 8 | Stopwatch::~Stopwatch() { |
mdomino | 0:3328857bf625 | 9 | // destructor |
mdomino | 0:3328857bf625 | 10 | } |
mdomino | 0:3328857bf625 | 11 | |
mdomino | 0:3328857bf625 | 12 | void Stopwatch::start() { |
mdomino | 0:3328857bf625 | 13 | // Start the timer |
mdomino | 0:3328857bf625 | 14 | sw.start(); |
mdomino | 0:3328857bf625 | 15 | } |
mdomino | 0:3328857bf625 | 16 | |
mdomino | 0:3328857bf625 | 17 | void Stopwatch::stop() { |
mdomino | 0:3328857bf625 | 18 | // Stop the timer |
mdomino | 0:3328857bf625 | 19 | sw.stop(); |
mdomino | 0:3328857bf625 | 20 | } |
mdomino | 0:3328857bf625 | 21 | |
fox46 | 2:2202f5336acb | 22 | void Stopwatch::reset() { |
fox46 | 2:2202f5336acb | 23 | // Reset the timer |
fox46 | 2:2202f5336acb | 24 | sw.reset(); |
fox46 | 2:2202f5336acb | 25 | } |
fox46 | 2:2202f5336acb | 26 | |
mdomino | 0:3328857bf625 | 27 | char* Stopwatch::getTime() { |
mdomino | 0:3328857bf625 | 28 | // Convert time in milliseconds to 00:00:00 format for output to LCD |
mdomino | 0:3328857bf625 | 29 | // Returns a pointer to a 8 char array in time format |
mdomino | 0:3328857bf625 | 30 | ms = sw.read_ms(); |
mdomino | 0:3328857bf625 | 31 | sec = (ms/1000); |
mdomino | 0:3328857bf625 | 32 | ms = ms - (sec*1000); |
mdomino | 0:3328857bf625 | 33 | min = (sec/60); |
mdomino | 0:3328857bf625 | 34 | sec = sec - (min*60); |
mdomino | 0:3328857bf625 | 35 | ms = (ms/10); |
fox46 | 2:2202f5336acb | 36 | sprintf(buffer1, "%02d:%02d:%02d", min, sec, ms); |
fox46 | 2:2202f5336acb | 37 | return buffer1; |
fox46 | 2:2202f5336acb | 38 | } |
fox46 | 2:2202f5336acb | 39 | |
fox46 | 2:2202f5336acb | 40 | char* Stopwatch::getTimeFshort() { |
fox46 | 2:2202f5336acb | 41 | // Convert time in milliseconds to 0:00:0 format for output to LCD |
fox46 | 2:2202f5336acb | 42 | // Returns a pointer to a 6 char array in time format |
fox46 | 2:2202f5336acb | 43 | ms1 = sw.read_ms(); |
fox46 | 2:2202f5336acb | 44 | sec = (ms1/1000); |
fox46 | 2:2202f5336acb | 45 | ms1 = ms1 - (sec*1000); |
fox46 | 2:2202f5336acb | 46 | min = (sec/60); |
fox46 | 2:2202f5336acb | 47 | sec = sec - (min*60); |
fox46 | 2:2202f5336acb | 48 | ms1 = (ms1/100); |
fox46 | 2:2202f5336acb | 49 | sprintf(buffer2,"%1d:%02d:%1d", min, sec, ms1); |
fox46 | 2:2202f5336acb | 50 | return buffer2; |
mdomino | 0:3328857bf625 | 51 | } |