c语言学习16按键控制流水灯

时间:2024-11-15 13:41:27

按键控制流水灯

        按键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);//流水灯函数

        }

        }

}