单片机中查询和中断的本质区别? 10

也查了一些资料,大体意思就是如果采用查询方式,CPU需要不断对各个外设进行轮回检查,效率较低,中断则不是。但我不太理解,这里以最简单的51单片机定时器0为例。判断定时器是... 也查了一些资料,大体意思就是如果采用查询方式,CPU需要不断对各个外设进行轮回检查,效率较低,中断则不是。但我不太理解,这里以最简单的51单片机定时器0为例。判断定时器是否溢出,采用查询方式的话,则需要不断查询溢出标志位:
while(1)
{if(TF0==1)
......
}
采用中断的话,大概程序如下:
while(1)
{if(flag==1)
......
}
其中flag为中断标志,在中断服务程序中进行赋值,一旦产生中断则将该值置1。
问题来了,第一个程序CPU需要不断查询TF0是否为1,但采用中断的第二个程序,CPU不也得反复查询flag是否是1吗?中断相对查询有提高效率的优点吗?
展开
 我来答
E时代幽默网
推荐于2018-03-07 · TA获得超过269个赞
知道小有建树答主
回答量:386
采纳率:33%
帮助的人:124万
展开全部
单片机内部由CPU RAM FLASH 以及外围电路和寄存器之类的东西组成,CPU是由数字逻辑电路构成的,基本数字逻辑门分为或门 与门 非门,通过这些门可以组成组合电路和时序电路。
查询方式就是CPU按照时钟周期一步一步地运行你的程序,由你的程序读取相应IO状态来判断事件是否发生,查询非常占用CPU的时间,而且速度会受限于时钟电路(通常是晶振),而中断方式也就是通过数字逻辑电路方式,外部产生一个脉冲,会触发数字逻辑电路动作,这通常是一瞬间的,速度仅仅依赖于门延迟,CPU收到中断请求后,会CALL中断服务程序,这通常只消耗1-4个指令周期,时间非常短
yhchen2001
2018-03-07 · TA获得超过737个赞
知道小有建树答主
回答量:348
采纳率:90%
帮助的人:130万
展开全部

说一下个人的理解,

  1. 什么时候用中断,

    一般的单片机中断响应时间也就是一个或两个机器周期这样,所以如果我们要处理的东西要求时间很严格,那就要在中断服务程式里来出来,比如常用的发送或接收异步通信数据,发送接收遥控信号, 等等. 这个时候就要用中断来做.

  2. 什么时候用查询

    一般一些处理事件要求时间不是很严格的情况下,就可以用查询来做,比如键盘扫描,等等.

  3. 你说的例子,有些单片机,计时中断后还要重先赋值给计时器COUNTER.那是一定要中断来做的.

  4. 如果你只是想知道计时器是否有中断发生而已,那查询和中断都可以看到.所以中断相对查询而言不是提高效率,而是不同的处理事件要不同的做法来做才可以达到目的.当然如果你要处理的事件很简单,不会影响到中断服务程式的正常中断,那么在中断里处理的话,效率是很提高. 

  5. 看你说的例子,应该就是某个事件 要求多少时间才处理,但要求的时间准确性不会很高,时间到了,给一个标志,查询到标志了,就去出来这个事件.

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式