打印

多次触发中断会不会累加?

[复制链接]
1621|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电信小菜|  楼主 | 2013-7-31 17:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lyjian| | 2013-7-31 19:07 | 只看该作者
不会

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
电信小菜 + 1
板凳
xiaochun_gao| | 2013-7-31 22:42 | 只看该作者
只执行一次,前提是你的定时器中断优先级高

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
电信小菜 + 1
地板
yanjiajiao| | 2013-8-2 11:00 | 只看该作者
肯定不会,所以对你运行中断程序所用的时间有要求,也就是说运行中断程序所需要的时间要小于二次中断间隔的时间,不知道我说清楚了没。嘻嘻!

使用特权

评论回复
5
diweo| | 2013-8-2 14:44 | 只看该作者
好像只有中段标志位,而没有中断计数寄存器的吧
所以最多只能执行1次

使用特权

评论回复
6
coody| | 2013-8-2 16:22 | 只看该作者
不会累加, 会丢失前面的

使用特权

评论回复
7
joyme| | 2013-8-2 16:46 | 只看该作者
如果是外部中断优先级高的,会执行10次,否则应该是执行1次
话说怎么可能那个定时中断要执行10ms那么久?10ms可以跑多少代码,不能把中断程序写的这么复杂吧

使用特权

评论回复
8
电信小菜|  楼主 | 2013-8-3 08:29 | 只看该作者
joyme 发表于 2013-8-2 16:46
如果是外部中断优先级高的,会执行10次,否则应该是执行1次
话说怎么可能那个定时中断要执行10ms那么久?10 ...

是的,不应该这么做,坏习惯,以后尽量避免

使用特权

评论回复
9
sunhq02| | 2013-8-3 08:54 | 只看该作者
中断应该尽量短小
如果确实有很多事情要做
可以在中断中配置一个恰当的全局变量,或者发出一个消息
在中断完成后合适的时机执行剩下的内容
在linux里面这样叫做bottom half

使用特权

评论回复
10
电信小菜|  楼主 | 2013-8-3 09:14 | 只看该作者
@ joyme@sunhq02
结构是这样的:
while(1)
{
    while()
    {
        任务1
    }
    while()
    {
        任务2
    }
    ......
}
在任务当中,需要跑到定时器中查询(10ms),之前以为将查询放主函数优先级不够高,就执行不到了,其实可以这样
while(1)
{
    while()
    {
        查询+标志位
        任务1
    }
    while()
    {
         查询+标志位
         任务2
    }
    ......
    查询
}
在任务中再查询就得了,定时器只置标志位

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

236

帖子

2

粉丝