1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lupyuen-LoRaMac-node-nuttx

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
timer.h 4.3 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
Julian van Doorn Отправлено 5 лет назад f52af41
/*!
* \file timer.h
*
* \brief Timer objects and scheduling management implementation
*
* \copyright Revised BSD License, see section \ref LICENSE.
*
* \code
* ______ _
* / _____) _ | |
* ( (____ _____ ____ _| |_ _____ ____| |__
* \____ \| ___ | (_ _) ___ |/ ___) _ \
* _____) ) ____| | | || |_| ____( (___| | | |
* (______/|_____)_|_|_| \__)_____)\____)_| |_|
* (C)2013-2017 Semtech
*
* \endcode
*
* \author Miguel Luis ( Semtech )
*
* \author Gregory Cristian ( Semtech )
*/
#ifndef __TIMER_H__
#define __TIMER_H__
#ifdef __cplusplus
extern "C"
{
#endif
#include <stddef.h>
#include <stdbool.h>
#include <stdint.h>
/*!
* \brief Timer object description
*/
typedef struct TimerEvent_s
{
uint32_t Timestamp; //! Current timer value
uint32_t ReloadValue; //! Timer delay value
bool IsStarted; //! Is the timer currently running
bool IsNext2Expire; //! Is the next timer to expire
void ( *Callback )( void* context ); //! Timer IRQ callback function
void *Context; //! User defined data object pointer to pass back
struct TimerEvent_s *Next; //! Pointer to the next Timer object.
}TimerEvent_t;
/*!
* \brief Timer time variable definition
*/
#ifndef TimerTime_t
typedef uint32_t TimerTime_t;
#define TIMERTIME_T_MAX ( ( uint32_t )~0 )
#endif
/*!
* \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 *context ) );
/*!
* \brief Sets a user defined object pointer
*
* \param [IN] context User defined data object pointer to pass back
* on IRQ handler callback
*/
void TimerSetContext( TimerEvent_t *obj, void* context );
/*!
* Timer IRQ event handler
*/
void TimerIrqHandler( 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 Checks if the provided timer is running
*
* \param [IN] obj Structure containing the timer object parameters
*
* \retval status returns the timer activity status [true: Started,
* false: Stopped]
*/
bool TimerIsStarted( 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
*
* \remark TimerGetElapsedTime will return 0 for argument 0.
*
* \param [IN] past fix moment in Time
* \retval time returns elapsed time
*/
TimerTime_t TimerGetElapsedTime( TimerTime_t past );
/*!
* \brief Computes the temperature compensation for a period of time on a
* specific temperature.
*
* \param [IN] period Time period to compensate
* \param [IN] temperature Current temperature
*
* \retval Compensated time period
*/
TimerTime_t TimerTempCompensation( TimerTime_t period, float temperature );
/*!
* \brief Processes pending timer events
*/
void TimerProcess( void );
#ifdef __cplusplus
}
#endif
#endif // __TIMER_H__

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/lupyuen-LoRaMac-node-nuttx.git
git@gitlife.ru:oschina-mirror/lupyuen-LoRaMac-node-nuttx.git
oschina-mirror
lupyuen-LoRaMac-node-nuttx
lupyuen-LoRaMac-node-nuttx
v4.5.0