LoRaWAN-SX1272-Application-24-31-9sec
Dependencies: X_NUCLEO_IKS01A1 driver_mbed_TH02 LoRaWAN-lib-v1_0_1 SX1272Lib mbed
Fork of LoRaWAN-SX1272-Application-24-31-9sec by
system/timer.cpp
- Committer:
- emerette
- Date:
- 2018-01-22
- Revision:
- 8:89039f83e9fc
- Parent:
- 0:6cc76d70e2a1
File content as of revision 8:89039f83e9fc:
/* / _____) _ | | ( (____ _____ ____ _| |_ _____ ____| |__ \____ \| ___ | (_ _) ___ |/ ___) _ \ _____) ) ____| | | || |_| ____( (___| | | | (______/|_____)_|_|_| \__)_____)\____)_| |_| (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; }