中断函数里面不能调用子函数吗

中断函数里面不能调用子函数吗,第1张

我也在遇到同样的问题。

具体原因是你的display(xxx,xxx,xxx)函数有形参的调用,也就是说主程序在调用这些形参的时候可能改变了形参的值,而此时可能这个函数又会被中断调用,那么这个形参的值究竟应该是原来的初值还是被主函数改变之后的值呢,所有就会有冲突。当然编译就会报错。

具体解决办法就是将函数都写为可重入函数,避免冲突,就是把你的函数定义写成这样试试

void display(xxxxxxx,xxxxx,xxxxx) reentrant

{

xxxxxxxx;

}

这种情况我也不是很懂,希望多交流交流

严格说起来,从中断程序跳转到其他程序执行一段时间,然后再返回中断,这个是可以做到的。

实事上,嵌入式的 *** 作系统的时间片轮转,就是用定时中断,进入定时中断判断并切换上下文,切换到别的任务,执行一段时间再返回原来的流程继续执行。

但请注意,正常设计程序时,不要这么做。

如果遇到程序中需要用到这种流程控制,有两个办法,

重新设计流程,

使用嵌入式 *** 作系统。

以上就是关于中断函数里面不能调用子函数吗全部的内容,包括:中断函数里面不能调用子函数吗、请问51单片机能不能暂停中断程序并跳转至其它程序中、执行完后跳回中断继续执行中断、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9814850.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存