找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 510|回复: 6
收起左侧

51单片机定时器中需要多种时间,一个自增变量可以解决

[复制链接]
ID:1146155 发表于 2026-3-24 08:13 来自触屏版 | 显示全部楼层 |阅读模式
比如我需要去按键抖动时间,还有各种延时
回复

使用道具 举报

ID:1133081 发表于 2026-3-24 16:16 | 显示全部楼层
定时器中断做一个基础时间,比如1ms,可以用一个变量或多个变量来满足多个时间需求。
回复

使用道具 举报

ID:123917 发表于 2026-3-25 00:49 | 显示全部楼层
一般是按多少个机器周期,
回复

使用道具 举报

ID:584814 发表于 2026-3-25 08:50 | 显示全部楼层
楼主真的是奇思妙想呀,一句话就精练地总结了前人的经验
回复

使用道具 举报

ID:123289 发表于 2026-3-25 10:09 | 显示全部楼层
在定时中断程序中,这样写程序:(假设0.1ms中断一次)
1、每10次中断,将B_1MS置1.
2、每100次中断,将B_10MS置1.
3、每10000次中断,将B_1S置1.
……
如此你就能得到1ms、10ms、1s三个时间,你只要在主程序识别一下,比如当B_1S=1时,就是1秒到了,记得处理后1秒所要做的事件后,将B_1S清0,下次B_1S再=1时,就又过了1S了。
回复

使用道具 举报

ID:1146155 发表于 2026-3-27 17:08 | 显示全部楼层
yzwzfyz 发表于 2026-3-25 10:09
在定时中断程序中,这样写程序:(假设0.1ms中断一次)
1、每10次中断,将B_1MS置1.
2、每100次中断,将B ...

原来可以这样?我是用笨方法  一个功能对应一个自增变量
回复

使用道具 举报

ID:1146155 发表于 2026-3-27 17:11 | 显示全部楼层
wjfw 发表于 2026-3-25 00:49
一般是按多少个机器周期,

我是之前整ESP32习惯了,用的systick 用新时间减去旧时间,51我用的笨方法,哪个功能需要延时的,我就单独做一个++变量,这样感觉很笨的方法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表