外部中断问题

2019-07-15 22:59发布

static u=0;
void counter1(void) interrupt 2                // INT 1
{
        if(u1==1)
        {
                if(u==0)
                {
                        ua[b++]=sum_ua;
                        sum_ua=0;
                        u=1;
                        sendchar(u);
                }
                sum_ut++;
                sendchar(u);
        }
        if(u1==0)
        {
                if(u==1)
                {
                        ut[a++]=sum_ut;
                        sum_ut=0;
                        u=0;
                }
                sum_ua++;
        }
}

想问下,为什么进u=0的条件里,u被赋值1,但是出了if(u==0)的条件,u又被自动赋成0了呢?这是怎么回事?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。