代码拉取完成,页面将自动刷新
#ifndef __SOFT_TIMER_H
#define __SOFT_TIMER_H
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
typedef void (*sft_tmr_callback_t)(void *);
struct sft_tmr_t;
//内存管理钩子
struct memory_management_hooks_t {
void *(*malloc_fn)(uint32_t sz);
void (*free_fn)(void *ptr);
};
/**
* @brief 初始化内存管理钩子函数
* @param hooks: 用户传递的钩子函数结构
* @retval void
*/
void sft_tmr_init_hooks(struct memory_management_hooks_t *hooks);
/**
* @brief 创建一个定时器
* @param sft_tmr: 作为定时器句柄返回
* @param period: 定时器超时值
* @param auto_reload: 是否自动重装载(非零则定时器到期后自动进行重装载)
* @param tmr_callBack: 定时器到期执行的回调函数
* @param para: 回调函数入参
* @retval <0:失败,>=0成功
*/
int32_t sft_tmr_create(struct sft_tmr_t **sft_tmr, uint32_t period, uint32_t auto_reload, sft_tmr_callback_t tmr_callBack, void *para);
/**
* @brief 删除一个定时器
* @param sft_tmr: 对应定时器句柄
* @retval void
*/
void sft_tmr_delete(struct sft_tmr_t *sft_tmr);
/**
* @brief 修改定时器的超时值(更改后需要重启定时器)
* @param sft_tmr: 对应定时器句柄
* @param period: 定时器超时值
* @retval void
*/
void sft_tmr_change_period(struct sft_tmr_t *sft_tmr, uint32_t period);
/**
* @brief 获取定时器的超时值
* @param sft_tmr: 对应定时器句柄
* @retval 0:失败,>0:欲获取的定时器的超时值
*/
uint32_t sft_tmr_get_period(struct sft_tmr_t *sft_tmr);
/**
* @brief 重定向定时器的回调函数
* @param sft_tmr: 对应定时器句柄
* @param tmr_callBack: 定时器到期执行的回调函数
* @param para: 回调函数入参
* @retval void
*/
void sft_tmr_redirect_callback(struct sft_tmr_t *sft_tmr, sft_tmr_callback_t tmr_callBack, void *para);
/**
* @brief 启动定时器(如果定时器已经启动,则更新到期时间)
* @param sft_tmr: 对应定时器句柄
* @param triger_now: 是否立即触发(非零则立即触发)
* @retval void
*/
void sft_tmr_start(struct sft_tmr_t *sft_tmr, uint32_t triger_now);
/**
* @brief 暂停定时器
* @param sft_tmr: 对应定时器句柄
* @retval void
*/
void sft_tmr_pause(struct sft_tmr_t *sft_tmr);
/**
* @brief 定时器tick自增,强烈建议以1ms为单位
* @retval void
*/
void sft_tmr_inc_tick(void);
/**
* @brief 定时器主循环,当相应定时器到期后执行用户回调
* @retval void
*/
void sft_tmr_loop(void);
/**
* @brief 定时器遍历
* @note 仅用于调试
* @retval void
*/
void tmr_list_for_each(void);
#endif/*__SOFT_TIMER_H*/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。