您好!
在我的 MSP430FR5969中、我编写了一个代码、在该代码中、按下某个键时会触发中断。
但是、根据我的需求、我希望在每次中断(ISR)段执行后、执行一个特定的函数。
这样做的一种方法是在 ISR 中调用函数。 但是、由于函数足够大、这不是我要做的事情。
我发现另一种方法是修改返回地址。 有人能告诉我、如何实现这一点吗?
是否有其他方法来完成我的任务?
我无法使用基于设置标志的 ISR。 ISR 执行后需要立即调用该函数。 代码应忘记所有内容、并执行特殊功能。
示例:
ISR 段 { //执行 ISR //设置一些值以标记变量 。} void Special _ Emergency _ Func () { //这是每次执行 ISR 时优先执行的大型函数 } void main (void) { //init MSP430模块 while (1) { if (flag == x) { //执行这个大部分 //这些段非常大。 //在中断后,代码再次检查标志值之前,需要花费大量时间。 } 否则 if (flag == y) { //执行这个大部分 //这些段非常大。 //在中断后,代码再次检查标志值之前,需要花费大量时间。 } }