假设我有两个 C 函数,a() 和 b()。同时假设我有两个与两个函数对应的中断。第一个中断应该开始运行函数 a(),并在其运行时停止 b() 运行(如果在其运行过程中被中断)。类似地,第二个中断对函数 b() 也是同样的情况。
如果我当前正在运行 a(),并触发了 b() 的中断。那么如何启动 b() 并在中断处理程序完成后防止 a() 完成?
代码如下:
如果我当前正在运行 a(),并触发了 b() 的中断。那么如何启动 b() 并在中断处理程序完成后防止 a() 完成?
代码如下:
int main(void)
{
Init();
while (true)
{
if (run_A)
{
a();
run_A = false;
}
if (run_B)
{
b();
run_B = false;
}
}
void Handler(void)
{
IntClear(interruptMask);
if (INTERRUPT_FOR_A)
{
run_A = true;
}
if (INTERRUPT_FOR_B)
{
run_B = true;
}
}
a
是否为真,如果是,则返回。这取决于a
的实际作用,可能会很实用,也可能不实用。你需要更详细地解释一下上下文,这可能是一个XY问题。 - Jabberwocky