推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

STM32不使用死延时的定时方法

更新时间:2019-08-06 18:56:07 大小:2M 上传用户:hahaheiyou查看TA发布的资源 标签:stm32定时器中断 下载积分:9分 评价赚积分 (如何评价?) 收藏 评论(0) 举报

资料介绍

下面我们先来看看两种延时的优缺点吧。

死延时:

原理:做空循环,死等;

优点:简单,很容易就能写出软件延时程序。
缺点:浪费cpu资源,发挥不出IC的最佳性能;导致IC复位,跑飞等问题。

活延时:

原理:利用定时器和轮巡的方式实现。

优点:时间计数灵活,占用IC资源少,能够发挥IC的最高性能;可以同时使用多个独立的定时。

缺点:至少需要开启一个定时器,如果利用不好会影响其他中断的执行。


基本的原理跟中断服务函数中执行程序是类似的,一般我们在中断服务函数中不要写调用延时子程序,中断服务程序也不要写得过长,处理过多的任务,要尽快处理后及时返回,如果中断中有很多任务需要执行,建议在中断子程序中设置一个标志位,等回到主程序再检查这个标志位,当标志为1时,就执行这些任务,这样就不会影响其它中断源的中断,也不会使中断产生混乱。

可参考下面这个程序是我基于STM32进行编写的供大家参考移植,精度也很高。

微信截图_20190805182600.png


部分文件列表

文件名大小
MP201908001_TimerUsageMethod_V0.0/
MP201908001_TimerUsageMethod_V0.0/document/
MP201908001_TimerUsageMethod_V0.0/Output/
MP201908001_TimerUsageMethod_V0.0/Output/core_cm3.crf4KB
MP201908001_TimerUsageMethod_V0.0/Output/core_cm3.d
MP201908001_TimerUsageMethod_V0.0/Output/core_cm3.o
MP201908001_TimerUsageMethod_V0.0/Output/ExtDll.iex
MP201908001_TimerUsageMethod_V0.0/Output/led.crf
MP201908001_TimerUsageMethod_V0.0/Output/led.d1KB
MP201908001_TimerUsageMethod_V0.0/Output/led.o
MP201908001_TimerUsageMethod_V0.0/Output/main.crf
...

全部评论(0)

暂无评论