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.
Dependencies: mbed LoRaWAN-lib SX1276Lib
system/timer.h
- Committer:
- mluis
- Date:
- 2016-07-05
- Revision:
- 7:3173f0508a98
- Parent:
- 5:1e9f6a365854
- Child:
- 9:ee9dcbb9708d
File content as of revision 7:3173f0508a98:
/*
/ _____) _ | |
( (____ _____ ____ _| |_ _____ ____| |__
\____ \| ___ | (_ _) ___ |/ ___) _ \
_____) ) ____| | | || |_| ____( (___| | | |
(______/|_____)_|_|_| \__)_____)\____)_| |_|
(C)2013 Semtech
Description: Timer objects and scheduling management
License: Revised BSD License, see LICENSE.TXT file include in the project
Maintainer: Miguel Luis and Gregory Cristian
*/
#ifndef __TIMER_H__
#define __TIMER_H__
#include "mbed.h"
/*!
* \brief Timer object description
*/
typedef struct TimerEvent_s
{
uint64_t value;
void ( *Callback )( void );
Ticker Timer;
}TimerEvent_t;
/*!
* \brief Timer time variable definition
*/
#ifndef TimerTime_t
typedef uint64_t TimerTime_t;
#endif
/*!
* \brief Inializes the timer used to get current time.
*
* \remark Current time corresponds to the time since system startup
*/
void TimerTimeCounterInit( void );
/*!
* \brief Initializes the timer object
*
* \remark TimerSetValue function must be called before starting the timer.
* this function initializes timestamp and reload value at 0.
*
* \param [IN] obj Structure containing the timer object parameters
* \param [IN] callback Function callback called at the end of the timeout
*/
void TimerInit( TimerEvent_t *obj, void ( *callback )( void ) );
/*!
* \brief Starts and adds the timer object to the list of timer events
*
* \param [IN] obj Structure containing the timer object parameters
*/
void TimerStart( TimerEvent_t *obj );
/*!
* \brief Stops and removes the timer object from the list of timer events
*
* \param [IN] obj Structure containing the timer object parameters
*/
void TimerStop( TimerEvent_t *obj );
/*!
* \brief Resets the timer object
*
* \param [IN] obj Structure containing the timer object parameters
*/
void TimerReset( TimerEvent_t *obj );
/*!
* \brief Set timer new timeout value
*
* \param [IN] obj Structure containing the timer object parameters
* \param [IN] value New timer timeout value
*/
void TimerSetValue( TimerEvent_t *obj, uint32_t value );
/*!
* \brief Read the current time
*
* \retval time returns current time
*/
TimerTime_t TimerGetCurrentTime( void );
/*!
* \brief Return the Time elapsed since a fix moment in Time
*
* \param [IN] savedTime fix moment in Time
* \retval time returns elapsed time
*/
TimerTime_t TimerGetElapsedTime( TimerTime_t savedTime );
/*!
* \brief Return the Time elapsed since a fix moment in Time
*
* \param [IN] eventInFuture fix moment in the future
* \retval time returns difference between now and future event
*/
TimerTime_t TimerGetFutureTime( TimerTime_t eventInFuture );
#endif // __TIMER_H__