标题:
求助一个单片机程序 不写延时函数来实现程序的时间消耗
[打印本页]
作者:
我在尽力
时间:
2019-7-14 19:35
标题:
求助一个单片机程序 不写延时函数来实现程序的时间消耗
不写延时函数来实现程序的时间消耗,用51开发板实现,最好用刷新写这部分,谢谢各位大佬了!
只求个思路 想自己完成
作者:
2667358111
时间:
2019-7-14 23:30
#在这里快速回复#时函数来实现程序的时间消耗,用51开发板实现,最好用刷新写这部分,谢谢各位大佬了! 只求个思路 想自己完成
作者:
幻剑心
时间:
2019-7-15 02:38
51和时间有关的大概有4种。一是用延时函数。二是用T0,T1定时/计数器。还有就是利用外部时间芯片。最后一种是用外部中断,用外部方波或者手动改变外部中断信号来实现。
作者:
774559006
时间:
2019-7-15 08:49
弄个定时器,弄个标志位就可以了,任务放在white循环里面,判断标志位
作者:
asdasdadadad
时间:
2019-7-15 09:16
如果用32,可以在延迟时进入WFI睡眠模式(任意中断唤醒),然后定时器配置你所需要的时间。我上次的项目就是这样实现低功耗的。
作者:
egypt
时间:
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(...)
}
}
}
作者:
hantu
时间:
2019-7-15 20:39
不用delay那就只有用定时器中断了
作者:
无衣
时间:
2019-7-16 11:21
可以直接用定时器了 想关就关 只需要一个 标志位 就可以进行判断
但是如果用的时候感觉算法什么没问题 但是实际有问题 建议 定时中断 只计时
作者:
孙文丹
时间:
2019-7-18 16:06
可以选择SysTick中断延时,或者是定时器中断延时
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1