C语言中断正在执行的子程序

 我来答
裘桖0Fg
2020-03-05 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:30%
帮助的人:1011万
展开全部
在子程序中用While(一个全局变量){这里执行子程序的操作}
要中断时把这个变量设为0,
则那个子程序就退出了.
这里假设你的子程序是个重复反复执行的操作.如果不是,那么你的需求本身就是错的做法你需要重新评估你的设计合理性.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丁梅郑酉
2020-03-02 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:30%
帮助的人:686万
展开全部
中断是单片机的一个重要功能,中断子程序专为执行中断功能,它是在发生中断后,自动执行的,不需要主程序调用;普通子函数要主程序调用才能执行。
汇编里的区别:
普通子函数用ret返回;中断子程序用reti返回,reti返回时要清除中断标志的;
普通子函数调用时直接进入函数入口地址,中断函数在中断发生时先进中断入口
03h、08h、13h、18h、23h后随即写一个跳转指令,再跳转到相应语句。
c语言区别:
普通子函数用的是c语言里的主函数调用子函数的方法,子函数可以有参数,有返回值;中断函数没有参数,没有返回值;
中断函数的写法也不一样,以80c51为例:
void
int0()
interrupt
0
using
1
{
}
interrupt
0不是是外部中断0引发的中断,必须写;
using
1
表示在中断函数里用第一组寄存器r0-r7.这个可以省略。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式