c语言学习16按键控制流水灯
按键控制流水灯
按键1:开启流水灯
按键2:关闭流水灯
按键3:加速
按键4:减速
int main(void)
{
u8 speed = 5; // 4 3 2 1 0 255
u8 key;
u8 flag=0;
//掉电不保存,w25q64可以
led_init();
key_init();
while(1)
{
key=key_scan();
if(key==1)
{
//printf("key:%d\r\n",key);
/*验证是否一直进入,观察有灯亮但很短,串口打印只有一个数字。按一次只返回一次1松开后返回0x255,所以不能直接用按键来控制,按键松开后值就变了,但用一个按键控制一个标志变量,标志变量来控制一个流水灯*/
//led_flash(speed);//流水灯函数
flag=1;
}
else if(key==2)
{
led_all_off();
flag=0;
}
else if(key==3&&flag==1)
{
speed--;
if(speed<=1)
{
speed=1;
}
}
else if(key==4&&flag==1)
{
speed++;
if(speed>=10)
{
speed=10;
}
}
if(flag==1)
{
led_flash(speed);//流水灯函数
}
}
}