找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2890|回复: 8
打印 上一主题 下一主题
收起左侧

求助一个单片机程序 不写延时函数来实现程序的时间消耗

[复制链接]
楼主
ID:565305 发表于 2019-7-15 15:01 | 显示全部楼层
提供个思路:

做个定时器,16bit 的计数器,比方说 count1 ,如果大于零,就每 10ms 自减一次直到 0(需自行处理中断设置,如10ms改成你想要的精度之类的)

主循环(main 的循环)想加延迟,就在触发条件满足时,把 count1 设定一下,比方说 1.5秒 就是 150, 设定后,不停地判断 count1 是否等于 0 ,如果等于 0 就
【1】先把该值变成 -1(注意中断上是大于零才自减)
【2】处理你原本想在定时后完成的代码

main()
{
    ...
    while(1)
    {   if(k1==0 && count1==-1) count1=150; // 按键后触发设定值
        if(count1==0)
        {   count1--;   
            your_code(...)
        }
    }
}
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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