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 Matt Dominey

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?

UserRevisionLine numberNew 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 }