![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Use LoRaWAN on mDot with IKS01A1 sensor board plugged into UDK board.
Dependencies: X_NUCLEO_IKS01A1 mbed LoRaWAN-lib SX1272Lib
Fork of LoRaWAN-demo-72 by
This project uses IKS01A1 driver library with pin definitions for mDot UDK arduino headers.
The mDot platform doesnt define arduino header pins, so they must be defined in the IKS01A1 driver library header.
system/timer.cpp
- Committer:
- dudmuck
- Date:
- 2016-08-17
- Revision:
- 6:72ea69843556
- Parent:
- 5:62862ef9480b
File content as of revision 6:72ea69843556:
/* / _____) _ | | ( (____ _____ ____ _| |_ _____ ____| |__ \____ \| ___ | (_ _) ___ |/ ___) _ \ _____) ) ____| | | || |_| ____( (___| | | | (______/|_____)_|_|_| \__)_____)\____)_| |_| (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 uint64_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; }