Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Timer64 Class Reference
Timer64 class Used to define a 64 bit timer64 that is thread safe. More...
#include <Timer64.h>
| Public Member Functions | |
| int | init (uint32_t rolloverCheckTimeInMsecc=TIMER64_DEFAULT_ROLLOVER_CHECK_IN_MSECS) | 
| Initialize the timer - this must be called before the timer can be used. | |
| int | release (void) | 
| Release the timer - must be called from the same thread calling init() | |
| int | start (void) | 
| Start the timer - this method is thread safe. | |
| int | stop (void) | 
| Stop the timer - this method is thread safe. | |
| int | reset (void) | 
| Reset the timer - this method is thread safe. | |
| int | read_us (uint64_t *timeInUsec=NULL) | 
| Read the timer value in microseconds - this method is thread safe. | |
| int | read_ms (uint64_t *timeInMsec=NULL) | 
| Read the timer value in milliseconds - this method is thread safe. | |
| int | read (double *timeInSec=NULL) | 
| Read the timer value in seconds - this method is thread safe. | |
| int | isRunning (bool *running) | 
| Check to see if timer is running - this method is thread safe. | |
Detailed Description
Timer64 class Used to define a 64 bit timer64 that is thread safe.
The Timer64 behaves in a similiar fashion to the mbed Timer class with the most notable exception that the Timer64 will not rollover after 2^31 microseconds (approximately 35.8 minutes). The Timer64 extends the rollover time to 2^64 microseconds (approximately 585,000 years!)
The Timer64 class is also designed to be thread safe. The following functions can be called from any thread after the class is instaniated and initialized:
It is to be noted that the init() and release() methods need to be called from the same thread.
Give the Timer64 library a try and let me know if it works for you. Will gladly take suggestions on how to make it better.
Simple Example
#include "mbed.h" #include "rtos.h" #include "Timer64.h" Timer64 timer64; int main() { uint64_t timeInUsec; timer64.init(); timer64.start(); Thread::wait(100); timer64.stop(); timer64.read_us(&timeInUsec); printf("Test - Elapsed time = %llu usec\n\n", timeInUsec); timer64.reset(); timer64.release(); while (1) { Thread::wait(1000); } }
Definition at line 93 of file Timer64.h.
Member Function Documentation
| int init | ( | uint32_t | rolloverCheckTimeInMsecc = TIMER64_DEFAULT_ROLLOVER_CHECK_IN_MSECS) | 
Initialize the timer - this must be called before the timer can be used.
- Parameters:
- 
  rolloverCheckTimeInMsecc specifies how ofter a rollover check is performed. This parameter is bounded by TIMER64_MIN_ROLLOVER_CHECK_IN_MSECS and TIMER64_MIN_ROLLOVER_CHECK_IN_MSECS with a default value of TIMER64_MIN_ROLLOVER_CHECK_IN_MSECS 
- Returns:
- TIMER64_OK, TIMER64_WARNING_ALREADY_INITIALIZED
Definition at line 37 of file Timer64.cpp.
| int isRunning | ( | bool * | running ) | 
Check to see if timer is running - this method is thread safe.
- Parameters:
- 
  running specifies a pointer to a bool where to save the running status 
- Returns:
- TIMER64_OK, TIMER64_ERROR_NOT_INITIALIZED, TIMER64_ERROR_NULL_POINTER
Definition at line 259 of file Timer64.cpp.
| int read | ( | double * | timeInSec = NULL) | 
Read the timer value in seconds - this method is thread safe.
- Parameters:
- 
  timeInMsec specifies a pointer to a double where to save the current time in seconds 
- Returns:
- TIMER64_OK, TIMER64_ERROR_NOT_INITIALIZED, TIMER64_ERROR_NULL_POINTER,
Definition at line 228 of file Timer64.cpp.
| int read_ms | ( | uint64_t * | timeInMsec = NULL) | 
Read the timer value in milliseconds - this method is thread safe.
- Parameters:
- 
  timeInMsec specifies a pointer to a uint64_t where to save the current time in milliseconds 
- Returns:
- TIMER64_OK, TIMER64_ERROR_NOT_INITIALIZED, TIMER64_ERROR_NULL_POINTER
Definition at line 197 of file Timer64.cpp.
| int read_us | ( | uint64_t * | timeInUsec = NULL) | 
Read the timer value in microseconds - this method is thread safe.
- Parameters:
- 
  timeInUsec specifies a pointer to a uint64_t where to save the current time in microseconds 
- Returns:
- TIMER64_OK, TIMER64_ERROR_NOT_INITIALIZED, TIMER64_ERROR_NULL_POINTER
Definition at line 166 of file Timer64.cpp.
| int release | ( | void | ) | 
Release the timer - must be called from the same thread calling init()
- Returns:
- TIMER64_OK, TIMER64_WARNING_ALREADY_RELEASED
Definition at line 64 of file Timer64.cpp.
| int reset | ( | void | ) | 
Reset the timer - this method is thread safe.
- Returns:
- TIMER64_OK, TIMER64_ERROR_NOT_INITIALIZED
Definition at line 140 of file Timer64.cpp.
| int start | ( | void | ) | 
Start the timer - this method is thread safe.
- Returns:
- TIMER64_OK, TIMER64_ERROR_NOT_INITIALIZED, TIMER64_WARNING_ALREADY_RUNNING
Definition at line 88 of file Timer64.cpp.
| int stop | ( | void | ) | 
Stop the timer - this method is thread safe.
- Returns:
- TIMER64_OK, TIMER64_ERROR_NOT_INITIALIZED, TIMER64_WARNING_ALREADY_STOPPED
Definition at line 114 of file Timer64.cpp.
Generated on Thu Jul 14 2022 11:48:58 by
 1.7.2
 1.7.2