key0按下流水灯频率来回变化,最大延时300,最小延时10. key1按下维持当前延时不变。按下key0,又恢复原样。
有没有一种语句 可以按下按键0执行包括语句1 按下按键1 中断包括语句1并且执行包括语句2 再按下按键0又执行包括语句0
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "key.h"
#include "stdio.h"
int main(void)
{
int i=10;
int c=0;
u8 t=0;
delay_init(); //延时函数初始化
LED_Init(); //初始化与LED连接的硬件接口
KEY_Init(); //初始化与按键连接的硬件接口
while(1)
{
t=KEY_Scan(0);
if(t==1&&t!=2)
{
while(i<=300&&i>=10&&t!=2)
{t=KEY_Scan(0);
i++;
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
delay_ms(i);
GPIO_SetBits(GPIOA,GPIO_Pin_8);
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
delay_ms(i);
if(i==300){i=10;} }
}
else if (t==2) {
c=i;
while(t==2)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
delay_ms(c);
GPIO_SetBits(GPIOA,GPIO_Pin_8);
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
delay_ms(c);
}
}
}
}
你用switch case语句