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: X_NUCLEO_IKS01A2 mbed LoRaWAN-lib SX1272Lib
Fork of LoRaWAN-demo-72 by
system/timer.cpp
- Committer:
- mluis
- Date:
- 2016-05-13
- Revision:
- 3:3152aa75c58d
- Parent:
- 0:45496a70a8a5
- Child:
- 5:62862ef9480b
File content as of revision 3:3152aa75c58d:
/*
/ _____) _ | |
( (____ _____ ____ _| |_ _____ ____| |__
\____ \| ___ | (_ _) ___ |/ ___) _ \
_____) ) ____| | | || |_| ____( (___| | | |
(______/|_____)_|_|_| \__)_____)\____)_| |_|
(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
*/
#include "board.h"
Timer TimeCounter;
Ticker LoadTimeCounter;
volatile uint32_t CurrentTime = 0;
void TimerResetTimeCounter( void )
{
CurrentTime = CurrentTime + TimeCounter.read_us( );
TimeCounter.reset( );
TimeCounter.start( );
}
void TimerTimeCounterInit( void )
{
TimeCounter.start( );
LoadTimeCounter.attach( &TimerResetTimeCounter, 10 );
}
TimerTime_t TimerGetCurrentTime( void )
{
CurrentTime += TimeCounter.read_us( );
TimeCounter.reset( );
TimeCounter.start( );
return ( ( TimerTime_t )CurrentTime );
}
TimerTime_t TimerGetElapsedTime( TimerTime_t savedTime )
{
CurrentTime += TimeCounter.read_us( );
TimeCounter.reset( );
TimeCounter.start( );
return ( TimerTime_t )( CurrentTime - savedTime );
}
TimerTime_t TimerGetFutureTime( TimerTime_t eventInFuture )
{
CurrentTime += TimeCounter.read_us( );
TimeCounter.reset( );
TimeCounter.start( );
return ( TimerTime_t )( CurrentTime + eventInFuture );
}
void TimerInit( TimerEvent_t *obj, void ( *callback )( void ) )
{
obj->value = 0;
obj->Callback = callback;
}
void TimerStart( TimerEvent_t *obj )
{
obj->Timer.attach_us( obj->Callback, obj->value );
}
void TimerStop( TimerEvent_t *obj )
{
obj->Timer.detach( );
}
void TimerSetValue( TimerEvent_t *obj, uint32_t value )
{
obj->value = value;
}
