From aa38e5c1f48e31213ee349aa5cd6f06c85bda70d Mon Sep 17 00:00:00 2001 From: android <android@lingyun.com> Date: Tue, 25 Jun 2024 21:49:39 +0800 Subject: [PATCH] Add GD32F103RCT6 ADC converter board SDK source code --- mcu_sdk/gd32f103/rk_eFire/Utiles/Utilities/timeServer.h | 160 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 160 insertions(+), 0 deletions(-) diff --git a/mcu_sdk/gd32f103/rk_eFire/Utiles/Utilities/timeServer.h b/mcu_sdk/gd32f103/rk_eFire/Utiles/Utilities/timeServer.h new file mode 100644 index 0000000..340edb5 --- /dev/null +++ b/mcu_sdk/gd32f103/rk_eFire/Utiles/Utilities/timeServer.h @@ -0,0 +1,160 @@ +/*! + * \file timeServer.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 __TIMESERVER_H__ +#define __TIMESERVER_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +#include <stddef.h> +#include <stdbool.h> +#include <stdint.h> +//#include "utilities.h" + +#define TIMEOUT_1S 1250 + +/*! + * \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__ -- Gitblit v1.9.1