中断程序如何解决互斥问题
在通讯程序中,使用中断接收数据,并保存到自定义栈中,用另一个程序读出这个栈,如下
void irq_XXX(void)
{
buf[dex]=DataRegister;//buf[]是自己定义的,当发生接收中断时,把寄存器DataRegister数据读出
dex++; //索引号
。。。
}
void Receive(&MyBuf) // 普通函数
{
...
MyBuf[n]=buf[dex];
dex--;
.....
}
简单的例子,普通函数运行时,如果突然产生中断,那么这个dex的值就会混乱,这种情况该如何解决?