keil-C51中关于单片机多个函数嵌套和可重入的问题

keil-C51中关于单片机多个函数嵌套和可重入的问题,第1张

我不太清楚你这个函数(以及它的子函数们)具有什么功能、有什么如此刻不容缓的紧迫性,以至于要所有的中断都来调用它……从系统架构设计来说,如果你对系统实时性有高要求、开了多重中断嵌套,那么就应当仔细考虑把每个中断里要做的事情最简化,不要把洗奶瓶换尿布这种工作交给驾驶赛车的赛车手来做!

回到你问的这个问题:

① 是的,被这个嵌套母函数调用的子函数也必须声明为嵌套函数。因为有可能运行至该子函数时产生中断调用母函数、继而调用该子函数的实体产生工作空间重叠。

② 如果你将这个母函数做出多个副本,那么子函数要么声明成重入、要么对应于每个母函数创建一个子函数副本、专门给对应的母函数调用。

您好!很高兴为您解答问题,以下是我为您提供的解答内容:

void timer0 interrupt 1

改成

void timer0(void) interrupt 1

不管什么软件,其主程序有且只能有一个,不能在一个程序中有多个主程序,因为所有程序的执行都是从主程序开始执行的,如果有多个主程序的话,程序在执行时会无法判断到底是要执行哪一个主程序。因此,建议不要将实不同功能程序写成主程序,而应该当其写成各个功能模块的形式(也就是函数形式)。然后在主程序中对其进行调用就行了。


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

原文地址: https://outofmemory.cn/yw/7933296.html

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

发表评论

登录后才能评论

评论列表(0条)

保存