Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
2年前关闭。
我可以从ISR内部调用ISR之外的函数吗,该ISR是由其他函数(例如,从MAIN)在AT89S52中使用C调用的?
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
2年前关闭。
我可以从ISR内部调用ISR之外的函数吗,该ISR是由其他函数(例如,从MAIN)在AT89S52中使用C调用的?
最佳答案
在任何体系结构中从ISR调用函数都是合法的-尽管并不总是明智的。
您需要考虑所考虑的函数是否适合在中断和多线程上下文中执行;例如,它将需要重新进入并且必须以原子方式或以确保一致性的方式访问共享资源,并且当然不应不确定地阻塞或繁忙等待。
您可能还需要考虑中断调用时间的堆栈要求以及函数调用本身的开销。可以考虑内联函数。
关于c - 使用C代码在AT89S52中进行中断,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43014093/
10-13 04:19