有没有同学帮忙改进一下,我打的这段代码为什么不能双击控制呼吸灯的呼吸
(目的:长按灯1亮,松开灯1、2亮;双击灯1变为呼吸灯,再次双击呼吸灯变为当前亮度)
#include<ioCC2530.h>
#define LED1 P1_0
#define LED2 P1_1
#define SW1 P1_2
unsigned char h=1;
void delay(unsigned int t)
{
unsigned int x,y;
for(x=0;x<t;x++)
{
for(y=0;y<400;y++);
}
}
void LED()
{
P1SEL &=~0x03;
P1SEL &=~0x04;
P1DIR |=0x03;
P1DIR &=~0x04;
LED1=0;
LED2=0;
IEN2 |=0x10;
P1IEN |=0x04;
PICTL |=0x02;
EA=1;
}
void LEDT1()
{
T1CTL |=0x01;
PERCFG = 0x40;
P1SEL |= 0x01;
T1CCTL2 |=0x64;
T1CC2L |=0xFF;
T1CC2H |=h;
}
unsigned int keytime=0,keycut=0,b=0,a=1;
//keytime长按时间,keycut点击次数,b控制呼吸;1呼吸0熄灭//
void key()
{
LED();
while(1)
{
if(SW1==0)
{
delay(50);
if(SW1==0)
{
keytime=0;
while(SW1==0 )
{
delay(1);
keytime++;
if(keytime>500)
{
LED1=1;
LED2=0;
}
}
if(SW1==1)
{
if(keytime>500)
LED1=LED2=1;
else
keycut++;
}
}
if(keycut>1)
{
if(b==0)
b=1;
else if(b==1)
b=0;
keycut=0;
}
}
}
}
void main()
{
LED();
LEDT1();
key();
while(1)
{
if((T1STAT & 0X04) >0)
{
T1STAT &=0xfb;
if(b==1)
h++;
else
h--;
T1CC2L =0XFF;
T1CC2H =h;
if(h >=254)
b=0;
if(h==0)
b=1;
}
}
}