找回密码
 立即注册

QQ登录

只需一步,快速开始

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

为什么单片机中断里面并不能加延时?

  [复制链接]
跳转到指定楼层
楼主
ID:399659 发表于 2018-10-16 18:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
加了延时  为什么程序就出不来
一直在延时里面
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

来自 2#
ID:388197 发表于 2018-10-16 21:21 | 只看该作者
中断里最好不要写循环,更不应该写DELAY之类的东西.
其实DELAY这类东西,平时应该注意养成习惯,能不用尽量不要去用.

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

来自 3#
ID:123289 发表于 2018-10-16 22:23 | 只看该作者
可以加延时!
提出这个问题,说明你对定时器理解的不够。
你需要再定时器原理,并想想楼上网友说的是否正确?

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:169944 发表于 2018-10-16 18:16 | 只看该作者
假设中断加了延时,那当在中断延时子程序里,下个中断来了,那就调到下一个中断,下一个中断延时子程序里又会来下一个中断………如此,这是个死嵌套,而且可以加延时,只要延时短,不过会影响效率

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:410689 发表于 2018-10-16 18:24 | 只看该作者
中断服务程序可以加延时程序的,你可以只开一个中断来测试一下。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

6#
ID:310519 发表于 2018-10-16 18:25 | 只看该作者
在进中断后关了中断,最后出来时再打开。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

7#
ID:402387 发表于 2018-10-16 18:57 来自手机 | 只看该作者
延时要加在中断函数里
回复

使用道具 举报

8#
ID:386381 发表于 2018-10-16 19:00 来自手机 | 只看该作者
那样会影响中断执行的

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

9#
ID:384722 发表于 2018-10-16 20:33 | 只看该作者
死循环 楼上说的感觉不错  学习学习
回复

使用道具 举报

10#
ID:387733 发表于 2018-10-17 07:20 | 只看该作者
在一个中断里面使用延时程序占用CPU资源,势必影响新的中断请求,以及中断级别较低的中断请求。
回复

使用道具 举报

11#
ID:279667 发表于 2018-10-17 08:53 | 只看该作者
中断中尽量避免加入延时或者操作比较耗时的操作,因为,中断就是要去执行很要紧的事情,当中断产生时,NVIC便会强行把CPU拉到中断现场去处理,这时候如果加上延时,会独占CPU并且让CPU做没有意义的事情,浪费资源。
回复

使用道具 举报

12#
ID:396960 发表于 2018-10-17 09:23 | 只看该作者
想说两点:
1.为什么会进入中断, 因为有中断标志位置位(置1) ,比如 INTFlag = 1 ;
然后进入中断。
void INTHandler(void)
{
    DELAY();//这是添加的延时
}
那么如果没有将“中断标志位 INTFlag”清零,就会一直进入“中断服务函数-void INTHandler(void)”,
那就一直执行里面的操作,延时。。。
2.如果想中断后延时,你可以在中断里面添加一个标志位:
void INTHandler(void)
{
      INTFlag = 0 ;//将中断标志清零
      xxflag = 1;//xxflag是定义的全局变量,指示已经产生中断的标志
}

main函数或者其他函数里面检测 if(xxflag == 1){ xxflag == 0 ; DELAY(); }

这样就行了
回复

使用道具 举报

13#
ID:382465 发表于 2018-10-17 11:24 | 只看该作者
中断里加延时?那中断的意义就不存在了。
回复

使用道具 举报

14#
ID:411126 发表于 2018-10-17 15:07 | 只看该作者
为了程序的效率,中断里的函数要尽量简单
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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