尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

软件定时器03

软件定时器03 定时器从指定时刻开始经过一个指定时间触发一个超时事件用户可自定义定时器周期硬件定时器芯片本身自带的定时器模块硬件定时器的精度很高每次时间到达之后会自动触发一个中断用户在中断服务函数中处理信息软件定时器简介:定义具有定时功能的软件可设置定时周期当指定时间到达后要调用回调函数优劣势 优势硬件定时器资源有限软件定时器只要内存足够可N多个 劣势精度相对于硬件定时器低任务状态 休眠态超时回调函数不会按时执行 运行态超时回调函数按时执行 状态转换 初始休眠态xTimerCreate 休眠态转运行态xTimerStart xTimerReset xTimerChangePeriod 运行态转休眠态xTimerStop / 单次定时器执行完一次超时回调函数后工作模式 单次定时器超时回调函数只会被执行一次 周期定时器超时回调函数按周期循环执行软件定时器任务作用 负责软件定时器超时逻辑判断 负责调用软件定时器超时回调函数 负责处理软件定时器命令队列应用程序(xTimerStart)-命令队列-软件定时器任务相关配置 prvTimerTask 优先级31 命令队列长度5流程 创建软件定时器实现软件定时器回调函数 软件定时器回调函数由软件定时器任务统一调用 软件定时器任务由vTaskStartScheduler函数内创建 -- 软件定时器回调函数内不可阻塞会影响其他软件定时器回调函数按时执行 -- 定时器api函数负责投递命令 到软件定时器执行队列软件定时器任务取出串行执行软件定时器创建函数函数xTimerCreate入参软件定时器名字 定时周期 工作模式 ID 回调函数返回值失败NULL 成功软件定时器句柄 [注意] 定时周期单位tick ID用于多个软件定时器共用一个超时回调函数区分软件定时器启动函数函数xTimerStart入参软件定时器任务句柄 发送命令队列阻塞时间返回值BaseType_t软件定时器复位函数函数xTimerReset入参软件定时器任务句柄 发送命令队列阻塞时间返回值BaseType_t软件定时器停止函数函数xTimerStop入参软件定时器任务句柄 发送命令队列阻塞时间返回值BaseType_t软件定时器修改周期函数函数xTimerChangePeriod入参软件定时器任务句柄 修改周期值 发送命令队列阻塞时间返回值BaseType_t软件定时器超时回调函数void timer2_callback(TimerHandle_t pxTimer);
返回列表