[其他ST产品] STM8的TIM4精确延时问题

[复制链接]
1429|20
hearstnorman323 发表于 2023-6-14 13:47 | 显示全部楼层
void delay_us(uint16_t us) {
    uint16_t cnt = 0;
    TIM4_SetCounter(0); //将计数器清零
    TIM4_Cmd(ENABLE); //使能TIM4定时器
    while(cnt < us) {
        if(TIM4_GetFlagStatus(TIM4_FLAG_UPDATE) == SET) { //判断是否发生更新事件
            TIM4_ClearFlag(TIM4_FLAG_UPDATE); //清除更新标志位
            cnt++; //更新计数器
        }
    }
    TIM4_Cmd(DISABLE); //关闭TIM4定时器
}
Belle1257 发表于 2023-6-14 14:06 | 显示全部楼层
第一毫秒你也用不上吧,一般都是每次使用都要重置的
LLGTR 发表于 2023-6-17 13:13 | 显示全部楼层
Henryko 发表于 2023-6-12 21:34
那有什么办法可以避免吗?

1ms影响不大吧?对你应用影响很大?
AloneKaven 发表于 2023-6-17 22:41 | 显示全部楼层
不要在中断里执行太耗时的程序
Jacquetry 发表于 2023-6-18 23:03 | 显示全部楼层
可不可以想办法滤掉第一个信号啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部