标题:
中断服务和函数调用的相同点和不同点,求指点
[打印本页]
作者:
单片机小白7
时间:
2021-7-8 10:39
标题:
中断服务和函数调用的相同点和不同点,求指点
如题
作者:
1543330241
时间:
2021-7-8 11:26
中断服务是可以打断当前正在执行的程序的,就是不管现在程序在干什么,如果有中断触发他都必须去执行(前提是这个中断优先级高),而函数调用是实现安排好的,只是你日程表上的其中一件事,程序是一条一条执行的,只有执行到那个函数时才会被调用
作者:
1543330241
时间:
2021-7-8 11:28
相同点的话,就是他们都需要跳转到相应的位置执行相应的程序
作者:
cpu小白白
时间:
2021-7-8 12:03
调用函数:在while大循环中,你写在while循环中的函数,会从头到尾,按照顺序执行,就是调用。调用函数就是程序跑到这个函数的时候,就会进入函数,实现功能。
中断函数:中断有一定条件,以外部中断为例,如果引脚上点平不改变(就是没有中断),程序就不会进入中断函数,只有中断来的时候,才会进入。
因为这个中断函数在程序中是不用调用的。写好了放在那里,等中断来了自己就到中断函数中去。而且中断来的时候,不管单片机程序执行到哪里,都会先进入中断,跑完了中断,再返回过来执行刚才的函数。
总而言之:调用函数,程序执行到就调用。中断函数,中断来的时候才调用。
作者:
胖球
时间:
2021-7-8 15:11
中断函数和函数调用的区别在于:中断函数是一来中断就停止执行目前这个任务或者中断优先级比它低的任务,跑去执行触发这个中断的事件,函数调用是顺序执行的。
共同点:都会跳转到相应的位置上再去执行
作者:
lzl12399
时间:
2021-7-9 08:35
沙发兄弟解释正确
作者:
yzwzfyz
时间:
2021-7-9 09:07
记住,无论上面说了多少,最重要的只有一点:
例如:你有一个程序是“救火“的,一旦发生“火灾”必须立即执行救火!
如果,程序正在执行一般函数,则:发生“火灾”时,你可以立即转去救火!
如果,程序正在执行一个中断服务函数,则:发生“火灾”时,你【不一定】能立即转去救火!
所以通用的要求是,中断服务函数要尽可能的执行时间短!忌讳在其中使用延时、复杂计算……。因为它会影响你“救火”。
最重要的一点是:中断服务函数,【不一定】能被另一个中断打断。而一般函数必定可以被另一个中断打断。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1