单片机中断问题。比如说当温度值超限了,蜂鸣器就报警。我总感觉没必要使用定时器中断似的,我直接用if

单片机中断问题。比如说当温度值超限了,蜂鸣器就报警。我总感觉没必要使用定时器中断似的,我直接用if语句判断温度值是否超过限定值,如果超过就使蜂鸣器端口不断取反就响了啊。当没超过限定值了,就不响呗。总感觉没必要用定时器中断似的。。。

使不使用中断是根据你的系统要求而定的。如果你对报警的响应时间有非常高的要求,那当然是使用中断触发报警好。因为如果当系统有其他很占资源的任务在运行的时候,是无法及时报警的。如果你对报警时间没有什么太严格的要求,延迟是几十几百毫秒都没所谓的话,可以只用查询的方法即可。追问

谢谢,很对头。

我能追问下,我看到有的设计是蜂鸣器报警采用中断,而LED报警采用查询。这是为什么?为什么不都采用中断呢?

追答

这么说吧,用哪种方法来触发报警是取决于整个系统整体运行的任务的。具体的话要看设计方案才知道。

例如:报警声如果是采用读取某些预设好的声音,那么就涉及到音频解码的问题,这部分占用的系统资源会比较多,所以用中断来检查报警是合理的。

而如果整个系统,只有两个任务,一是检测,二是报警,那么采用中断跟查询的方式其实响应速度都差不多,可以根据自己的设计来决定。

当然,一般来说,如果资源允许,像报警这种事情,还是用中断来做好点。

追问

万分谢谢!

追答

补充一句:任何系统都有各自的特点,不是说某个功能就一定要用中断,某个功能就一定不能用,而是要根据具体的应用要求来设计的。

追问

嗯哪,我照着一个设计范文改,他是蜂鸣器报警采用中断,LED报警采用查询的,一起组成报警系统。我在想是不是可以把LED报警也采用中断

追答

要看你用什么单片机,单片机系统有多少个中断,说不定能用的中断只剩下一个呢。


我这样猜想,它原本的设计,应该是这样考虑的:

    蜂鸣器报警一定是要及时的,所以用中断

    LED显示对响应的时间要求没那么高,可以不用中断

    省下来的中断源,可以用来留着做其他扩展

追问

好像不是这样的。。。刚我想到,蜂鸣器采用中断而LED报警采用查询是因为蜂鸣器需要脉冲才能响所以采用定时器中断,因为定时器中断可以输出脉冲对吧哈哈

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜