外部中断问题

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了呢?这是怎么回事?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
wujiazier
1楼-- · 2019-07-15 23:46
 精彩回答 2  元偷偷看……
madboy
2楼-- · 2019-07-16 02:02
wujiazier 发表于 2013-8-16 10:55
把  static u=0;  改为  int u=0;  试试

还是不行啊,不知道为什么,串口sendchar把u自动清零了
madboy
3楼-- · 2019-07-16 04:29
wujiazier 发表于 2013-8-16 10:55
把  static u=0;  改为  int u=0;  试试

说错了,外部中断u置1,出来就自动清零了

一周热门 更多>