当我所有的 IDE 都在重新安装时,我或多或少有这个理论问题......
所以我主要使用 MSP430,我很好奇如果我为单个中断向量创建多个 ISR 会发生什么。
假设我正在查看端口 2(引脚输入)是否按下按钮。
#pragma vector = PORT2_VECTOR
__interrupt void Port2_ISR_1 (void)
{
if (BUTTON1_DOWN)
{
g_temp = 1234;
}
}
现在,如果我在与相同 PORT2_VECTOR 对应的某个位置添加另一个呢?
#pragma vector = PORT2_VECTOR
__interrupt void Port2_ISR_2 (void)
{
if (BUTTON2_DOWN)
{
g_temp = 2345;
}
}
它们对应于被按下的不同按钮,但针对相同的中断向量。当编译器编译时,如果它们属于同一个向量,它是否将服务例程放在一起?每当 PORT2 中断关闭时,微控制器是否都按顺序执行?