找回密码
 立即注册

QQ登录

只需一步,快速开始

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

能不能在单片机定时器中断函数中加延时函数?

  [复制链接]
跳转到指定楼层
楼主
ID:822669 发表于 2020-9-24 14:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
能不能在单片机定时器中断函数中加延时函数?如果加了延时会造成什么效果呢,到底是定时器优先级高还是延时函数优先级高呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:332444 发表于 2020-9-24 16:23 | 只看该作者
通常是指循环延时,如果延时函数在中断中调用则优先级同中断。中断当然可以调用延时,也可以直接把循环延时写在中断中,只是画蛇添足的做法而已,通常学到一定阶段就不会这样写和调用了,因为中断就是有间隔的直接可当延时用。
回复

使用道具 举报

板凳
ID:213173 发表于 2020-9-24 16:33 | 只看该作者
在单片机定时器中断函数中加延时函数没有逻辑问题。一个成熟的代码不会在定时器中断函数中加延时函数,除非是必不可少的几us的延时。中断函数是打断主函数运行的需要及时处理的事件,占时尽可能短。插入较长延时会影响系统运行效率,甚至破坏其它外设的运行。优先级只是针对CPU响应各种中断函数的排序,与延时函数无关。
回复

使用道具 举报

地板
ID:382454 发表于 2020-9-24 16:48 | 只看该作者
可是可以,但中断里放延时函数是水货的做法。
回复

使用道具 举报

5#
ID:155507 发表于 2020-9-24 22:33 | 只看该作者
通常在中断子程序中是不调用延时子程序的,这样会增加中断处理时间,如果有其它低级中断了,就会延误响应中断了。
回复

使用道具 举报

6#
ID:420836 发表于 2020-9-25 08:11 | 只看该作者
最好不要在中断例程中使用延迟
回复

使用道具 举报

7#
ID:347452 发表于 2020-9-25 08:26 | 只看该作者
当然可以使用啊,有优先级的,高级别的中断 打断低级别的中断
回复

使用道具 举报

8#
ID:822755 发表于 2020-9-25 10:35 | 只看该作者
中断是用来快速响应事件的。加了延时,会影响其他更低优先级的中断响应,当然不能加了。可以做标志,然后在主循环中延时处理。
回复

使用道具 举报

9#
ID:823237 发表于 2020-9-25 17:39 | 只看该作者
中断里面放延迟会影响处理速度,影响优先级
回复

使用道具 举报

10#
ID:207421 发表于 2020-9-26 23:42 | 只看该作者
可以,例如定时器延时50MS,定时器中断那来一个delayms(2)函数,延时2毫秒是没问题的,只要控制在50MS之下勉强可以,但是还是不建议这样干,并不专业,不推荐
回复

使用道具 举报

11#
ID:106821 发表于 2020-9-29 15:16 | 只看该作者
一般不建议
回复

使用道具 举报

12#
ID:57657 发表于 2021-11-27 19:23 | 只看该作者
如果定时器中断内程序执行的时间,超过了定时器设定的时间。
中断不会被自己打断,而是定时器溢出后TF0会被硬件置1,中断返回后会再次进入该中断(硬件清0),导致定时器时间紊乱,main函数无法正常执行,如遇此情况请更换高性能1T单片机、优化代码、提高晶振频率。
回复

使用道具 举报

13#
ID:985437 发表于 2021-11-27 21:04 | 只看该作者
再没有使用操作系统的情况下可以,但是不好,一般中断函数要尽量短小,精简
回复

使用道具 举报

14#
ID:517951 发表于 2021-11-29 09:50 | 只看该作者
中断的目的就是为了单片机快捷高效处理事务,如果加入延时, 是与这个初衷相悖的。
回复

使用道具 举报

15#
ID:983456 发表于 2021-11-29 10:18 来自手机 | 只看该作者
最好别用
回复

使用道具 举报

16#
ID:883242 发表于 2021-11-29 23:51 | 只看该作者
μs级别的延迟,如果确有必要,可以加,虽然不建议。

ms级别的延迟,定时器中断不够你用的吗?加上去显得太蠢了。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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