void interrupt_timer1()interrupt 3
{
static uint8 zhuangtai = 0;
static uint16 counter = 0;
static uint16 counter1 = 0;
TH1 = 0xFC;
TL1 = 0x67;
P0=0XFF;
counter++;
counter1++;
switch(zhuangtai)
{
case 0:
if (1000 == counter)
{
counter=0;
s++;
}
if (s>=10)
{s=0;}
refresh_shumaled();
zhuangtai=1;break;
case 1 :
if(counter1 == 200)
{counter1 =0;
i++;
if(i>=32){i=0;}
}
refresh_led();
zhuangtai=0;break;
default: break;
}
}
运行时发现进入case(0)时,只执行最后两句代码
refresh_shumaled();
zhuangtai=1;break;
而用于判断counter++的语句无效,
case(1)里内容可以正常运行,实在是百思不得其解。
{
static uint8 zhuangtai = 0;
static uint16 counter = 0;
static uint16 counter1 = 0;
TH1 = 0xFC;
TL1 = 0x67;
P0=0XFF;
counter++;
counter1++;
switch(zhuangtai)
{
case 0:
if (1000 == counter)
{
counter=0;
s++;
}
if (s>=10)
{s=0;}
refresh_shumaled();
zhuangtai=1;break;
case 1 :
if(counter1 == 200)
{counter1 =0;
i++;
if(i>=32){i=0;}
}
refresh_led();
zhuangtai=0;break;
default: break;
}
}
运行时发现进入case(0)时,只执行最后两句代码
refresh_shumaled();
zhuangtai=1;break;
而用于判断counter++的语句无效,
case(1)里内容可以正常运行,实在是百思不得其解。