DISCO-L072CZ-LRWAN1-base

Dependencies:   BufferedSerial LoRaWAN-lib-st-murata ST-DEVKIT-LRWAN mbed

Committer:
alphaemmeo
Date:
Mon Dec 04 14:28:30 2017 +0000
Revision:
1:dcf49b02bfd9
Parent:
0:60680ad16314
base porting

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alphaemmeo 0:60680ad16314 1 /*
alphaemmeo 0:60680ad16314 2 / _____) _ | |
alphaemmeo 0:60680ad16314 3 ( (____ _____ ____ _| |_ _____ ____| |__
alphaemmeo 0:60680ad16314 4 \____ \| ___ | (_ _) ___ |/ ___) _ \
alphaemmeo 0:60680ad16314 5 _____) ) ____| | | || |_| ____( (___| | | |
alphaemmeo 0:60680ad16314 6 (______/|_____)_|_|_| \__)_____)\____)_| |_|
alphaemmeo 0:60680ad16314 7 (C)2013 Semtech
alphaemmeo 0:60680ad16314 8
alphaemmeo 0:60680ad16314 9 Description: Timer objects and scheduling management
alphaemmeo 0:60680ad16314 10
alphaemmeo 0:60680ad16314 11 License: Revised BSD License, see LICENSE.TXT file include in the project
alphaemmeo 0:60680ad16314 12
alphaemmeo 0:60680ad16314 13 Maintainer: Miguel Luis and Gregory Cristian
alphaemmeo 0:60680ad16314 14 */
alphaemmeo 0:60680ad16314 15 #ifndef __TIMER_H__
alphaemmeo 0:60680ad16314 16 #define __TIMER_H__
alphaemmeo 0:60680ad16314 17
alphaemmeo 0:60680ad16314 18 #include "mbed.h"
alphaemmeo 0:60680ad16314 19
alphaemmeo 0:60680ad16314 20 /*!
alphaemmeo 0:60680ad16314 21 * \brief Timer object description
alphaemmeo 0:60680ad16314 22 */
alphaemmeo 0:60680ad16314 23 typedef struct TimerEvent_s
alphaemmeo 0:60680ad16314 24 {
alphaemmeo 0:60680ad16314 25 uint32_t value;
alphaemmeo 0:60680ad16314 26 void ( *Callback )( void );
alphaemmeo 0:60680ad16314 27 Ticker Timer;
alphaemmeo 0:60680ad16314 28 }TimerEvent_t;
alphaemmeo 0:60680ad16314 29
alphaemmeo 0:60680ad16314 30 /*!
alphaemmeo 0:60680ad16314 31 * \brief Timer time variable definition
alphaemmeo 0:60680ad16314 32 */
alphaemmeo 0:60680ad16314 33 #ifndef TimerTime_t
alphaemmeo 0:60680ad16314 34 typedef uint32_t TimerTime_t;
alphaemmeo 0:60680ad16314 35 #endif
alphaemmeo 0:60680ad16314 36
alphaemmeo 0:60680ad16314 37 /*!
alphaemmeo 0:60680ad16314 38 * \brief Inializes the timer used to get current time.
alphaemmeo 0:60680ad16314 39 *
alphaemmeo 0:60680ad16314 40 * \remark Current time corresponds to the time since system startup
alphaemmeo 0:60680ad16314 41 */
alphaemmeo 0:60680ad16314 42 void TimerTimeCounterInit( void );
alphaemmeo 0:60680ad16314 43
alphaemmeo 0:60680ad16314 44 /*!
alphaemmeo 0:60680ad16314 45 * \brief Initializes the timer object
alphaemmeo 0:60680ad16314 46 *
alphaemmeo 0:60680ad16314 47 * \remark TimerSetValue function must be called before starting the timer.
alphaemmeo 0:60680ad16314 48 * this function initializes timestamp and reload value at 0.
alphaemmeo 0:60680ad16314 49 *
alphaemmeo 0:60680ad16314 50 * \param [IN] obj Structure containing the timer object parameters
alphaemmeo 0:60680ad16314 51 * \param [IN] callback Function callback called at the end of the timeout
alphaemmeo 0:60680ad16314 52 */
alphaemmeo 0:60680ad16314 53 void TimerInit( TimerEvent_t *obj, void ( *callback )( void ) );
alphaemmeo 0:60680ad16314 54
alphaemmeo 0:60680ad16314 55 /*!
alphaemmeo 0:60680ad16314 56 * \brief Starts and adds the timer object to the list of timer events
alphaemmeo 0:60680ad16314 57 *
alphaemmeo 0:60680ad16314 58 * \param [IN] obj Structure containing the timer object parameters
alphaemmeo 0:60680ad16314 59 */
alphaemmeo 0:60680ad16314 60 void TimerStart( TimerEvent_t *obj );
alphaemmeo 0:60680ad16314 61
alphaemmeo 0:60680ad16314 62 /*!
alphaemmeo 0:60680ad16314 63 * \brief Stops and removes the timer object from the list of timer events
alphaemmeo 0:60680ad16314 64 *
alphaemmeo 0:60680ad16314 65 * \param [IN] obj Structure containing the timer object parameters
alphaemmeo 0:60680ad16314 66 */
alphaemmeo 0:60680ad16314 67 void TimerStop( TimerEvent_t *obj );
alphaemmeo 0:60680ad16314 68
alphaemmeo 0:60680ad16314 69 /*!
alphaemmeo 0:60680ad16314 70 * \brief Resets the timer object
alphaemmeo 0:60680ad16314 71 *
alphaemmeo 0:60680ad16314 72 * \param [IN] obj Structure containing the timer object parameters
alphaemmeo 0:60680ad16314 73 */
alphaemmeo 0:60680ad16314 74 void TimerReset( TimerEvent_t *obj );
alphaemmeo 0:60680ad16314 75
alphaemmeo 0:60680ad16314 76 /*!
alphaemmeo 0:60680ad16314 77 * \brief Set timer new timeout value
alphaemmeo 0:60680ad16314 78 *
alphaemmeo 0:60680ad16314 79 * \param [IN] obj Structure containing the timer object parameters
alphaemmeo 0:60680ad16314 80 * \param [IN] value New timer timeout value
alphaemmeo 0:60680ad16314 81 */
alphaemmeo 0:60680ad16314 82 void TimerSetValue( TimerEvent_t *obj, uint32_t value );
alphaemmeo 0:60680ad16314 83
alphaemmeo 0:60680ad16314 84 /*!
alphaemmeo 0:60680ad16314 85 * \brief Read the current time
alphaemmeo 0:60680ad16314 86 *
alphaemmeo 0:60680ad16314 87 * \retval time returns current time
alphaemmeo 0:60680ad16314 88 */
alphaemmeo 0:60680ad16314 89 TimerTime_t TimerGetCurrentTime( void );
alphaemmeo 0:60680ad16314 90
alphaemmeo 0:60680ad16314 91 /*!
alphaemmeo 0:60680ad16314 92 * \brief Return the Time elapsed since a fix moment in Time
alphaemmeo 0:60680ad16314 93 *
alphaemmeo 0:60680ad16314 94 * \param [IN] savedTime fix moment in Time
alphaemmeo 0:60680ad16314 95 * \retval time returns elapsed time
alphaemmeo 0:60680ad16314 96 */
alphaemmeo 0:60680ad16314 97 TimerTime_t TimerGetElapsedTime( TimerTime_t savedTime );
alphaemmeo 0:60680ad16314 98
alphaemmeo 0:60680ad16314 99 /*!
alphaemmeo 0:60680ad16314 100 * \brief Return the Time elapsed since a fix moment in Time
alphaemmeo 0:60680ad16314 101 *
alphaemmeo 0:60680ad16314 102 * \param [IN] eventInFuture fix moment in the future
alphaemmeo 0:60680ad16314 103 * \retval time returns difference between now and future event
alphaemmeo 0:60680ad16314 104 */
alphaemmeo 0:60680ad16314 105 TimerTime_t TimerGetFutureTime( TimerTime_t eventInFuture );
alphaemmeo 0:60680ad16314 106
alphaemmeo 0:60680ad16314 107 #endif // __TIMER_H__