单片机中既然有中断方式,为什么还要查询方式?

来源:百度知道 编辑:UC知道 时间:2024/06/08 22:06:22
为什么有些教材(凌阳单片机)还是比较青睐于查询方式(例如查询一帧数据接受完没有)?使用查询方式是不是还要屏蔽中断信号?这样不是很麻烦吗?

这个问题比较高深啊。。。其实搞单片机最终就是在查询和中断方式中不断权衡

查询适合简单的任务,但不幸的是大部分任务都不是这种范畴的。

查询有他先天的弱点,比如容易造成假死循环,没法均衡cpu负载,没法利用省电模式等等

但最重要的是,一旦任务复杂起来,需要类似“多线程”的工作模式的时候,查询就完全不能够胜任了。

教材一般是让你知道硬件是可以工作,是怎么工作的,当然用最简单的方式来让你尽快熟悉硬件,事实上,不光是教材,几乎所有供应商的AN(application notes)里都用了大量的查询方式的例程。而我们进行设计的时候,就要有个清醒的认识,不能够直接拿过来就用

说个趣事,我曾经用freescale的dsp进行过开发,当时碰到一些问题,中国方面的支持工程师就给了我一段查询方式的代码,而美国的FAE给我们解决这方面问题的时候,提供的测试片断,完全用中断方式实现。国内下位机工程质量上不去的一个主要原因,也是因为大量的工程师们对硬件没有深刻地了解,而是大量粘贴供应商例程造成的。当然这和开发周期短,急功近利也有很大的关系。

查询方式主要由编写的程序进行查询状态来获取数据的;
中断方式主要是通过系统本身的硬件机制再通过自己编写的中断服务函数做出相应操作的;
两者主要区别在 实时性 上 中断处理很及时,只要发生这个时间久会执行对应操作,查询的话要等到查询状态之后才会做出相应操作。中断的主要优势在程序较复杂的情况下和对实时性要求高的情况下更明显。

中断适用实时性要求高的.查询只能做时序指标不高的处理.
假如你做视频采集, CCD的多路驱动信号能用查询方式吗

中断不占用CPU的时间,但数量有限,不能满足设计要求;查询可以是几百个甚至更多,在速度要求很高的情况下就不行了。

你不觉得查询法相比中断法更简单吗?查询法和中断法不能和到用撒 或者进入查询时关掉中断就好了 查询法更简单