WXK
2025-02-11 e328ebef585cea2351b37117b2d5ac4978ecd3c0
keil/include/components/wsf/include/wsf_timer.h
@@ -1,26 +1,3 @@
/*************************************************************************************************/
/*!
 *  \file   wsf_timer.h
 *
 *  \brief  Timer service.
 *
 *  Copyright (c) 2009-2019 Arm Ltd. All Rights Reserved.
 *
 *  Copyright (c) 2019-2020 Packetcraft, Inc.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
/*************************************************************************************************/
#ifndef WSF_TIMER_H
#define WSF_TIMER_H
@@ -30,17 +7,9 @@
extern "C" {
#endif
/*! \addtogroup WSF_TIMER_API
 *  \{ */
/**************************************************************************************************
  Macros
**************************************************************************************************/
#ifndef WSF_MS_PER_TICK
/*! \brief Default milliseconds per tick rate */
#define WSF_MS_PER_TICK 10
#endif
#define WSF_TIMER_ONE_SHOT 0
#define WSF_TIMER_PERIODIC 1
@@ -49,15 +18,12 @@
  Data Types
**************************************************************************************************/
/*! \brief Timer ticks data type */
typedef uint32_t wsfTimerTicks_t;
/*! \brief Timer structure */
typedef struct wsfTimer_tag
{
    struct wsfTimer_tag *pNext; /*!< \brief pointer to next timer in queue */
    wsfMsgHdr_t msg;            /*!< \brief application-defined timer event parameters */
    wsfTimerTicks_t ticks;      /*!< \brief number of ticks until expiration */
    uint32_t ticks;             /*!< \brief number of ticks until expiration */
    uint32_t count;
    uint8_t mode;             /*!< \brief one shot or periodic */
    wsfHandlerId_t handlerId; /*!< \brief event handler for this timer */
@@ -78,16 +44,16 @@
/*************************************************************************************************/
/*!
 *  \brief  Start a timer in units of seconds.  Before this function is called parameter
 *  \brief  Start a timer in units of 32768Hz ticks.  Before this function is called parameter
 *          pTimer->handlerId must be set to the event handler for this timer and parameter
 *          pTimer->msg must be set to any application-defined timer event parameters.
 *
 *  \param  pTimer  Pointer to timer.
 *  \param  sec     Seconds until expiration.
 *  \param  ticks   32768Hz ticks until expiration.
 *  \param  mode    Timer work mode.
 */
/*************************************************************************************************/
void WsfTimerStartSec(wsfTimer_t *pTimer, wsfTimerTicks_t sec, uint8_t mode);
void WsfTimerStartTick(wsfTimer_t *pTimer, uint32_t ticks, uint8_t mode);
/*************************************************************************************************/
/*!
@@ -98,7 +64,7 @@
 *  \param  mode    Timer work mode.
 */
/*************************************************************************************************/
void WsfTimerStartMs(wsfTimer_t *pTimer, wsfTimerTicks_t ms, uint8_t mode);
void WsfTimerStartMs(wsfTimer_t *pTimer, uint32_t ms, uint8_t mode);
/*************************************************************************************************/
/*!
@@ -117,37 +83,19 @@
 *  \param  ticks  Number of ticks since last update.
 */
/*************************************************************************************************/
void WsfTimerUpdate(wsfTimerTicks_t ticks);
void WsfTimerUpdate(uint32_t ticks);
/*************************************************************************************************/
/*!
 *  \brief  Service expired timers for the given task.  This function is typically called only
 *          WSF OS porting code.
 *
 *  \param  taskId      OS Task ID of task servicing timers.
 *
 *  \return Pointer to next expired timer or NULL if there are no expired timers.
 */
/*************************************************************************************************/
wsfTimer_t *WsfTimerServiceExpired(wsfTaskId_t taskId);
wsfTimer_t *WsfTimerServiceExpired(void);
/*************************************************************************************************/
/*!
 *  \brief      Check if there is an active timer and if there is enough time to
 *              go to sleep.
 */
/*************************************************************************************************/
uint8_t WsfTimerSleepCheck(uint32_t *sleep_ms);
/*************************************************************************************************/
/*!
 *  \brief  Function for checking if there is an active timer and if there is enough time to
 *          go to sleep and going to sleep.
 */
/*************************************************************************************************/
void WsfTimerUpdateTicks(void);
/*! \} */ /* WSF_TIMER_API */
uint32_t WsfTimerNextExpiration(void);
#ifdef __cplusplus
};