LEDFLAG = 1 对应红蓝快闪,300ms变化一次
LEDFLAG = 2 对应蓝灯常量
LEDFLAG = 3 对应红蓝慢闪,600ms变化一次
LEDFLAG = 4
……
#define LED1 GPIOA5
#define LED2 GPIOA6
#define LED3 GPIOA7
uint8_t LEDFLAG = 0;//控制LED闪烁
void userled_Init(void)//共阳接法
{
GPIO_PortAModeSet(LED1, 0);// 0 设置普通模式
GPIO_RegOneBitClear(GPIO_A_PD, LED1);//清除下拉
GPIO_RegOneBitSet(GPIO_A_PU, LED1);//设置上拉
GPIO_RegOneBitSet(GPIO_A_OUT, LED1);//设置输出
GPIO_PortAModeSet(LED2, 0);// 0 设置普通模式
GPIO_RegOneBitClear(GPIO_A_PD, LED2);//清除下拉
GPIO_RegOneBitSet(GPIO_A_PU, LED2);//设置上拉
GPIO_RegOneBitSet(GPIO_A_OUT, LED2);//设置输出
GPIO_PortAModeSet(LED3, 0);// 0 设置普通模式
GPIO_RegOneBitClear(GPIO_A_PD, LED3);//清除下拉
GPIO_RegOneBitSet(GPIO_A_PU, LED3);//设置上拉
GPIO_RegOneBitSet(GPIO_A_OUT, LED3);//设置输出
}
void usergreenled(uint8_t userledflag)// 0 off 1 on
{
if(userledflag == 1){
GPIO_RegOneBitClear(GPIO_A_OUT, GPIOA5);
APP_DBG("green open\n");
}else{
GPIO_RegOneBitSet(GPIO_A_OUT, GPIOA5);
APP_DBG("green close\n");
}
}
void userredled(uint8_t userledflag)// 0 off 1 on
{
if(userledflag == 1){
GPIO_RegOneBitClear(GPIO_A_OUT, GPIOA6);
APP_DBG("red open\n");
}else{
GPIO_RegOneBitSet(GPIO_A_OUT, GPIOA6);
APP_DBG("red close\n");
}
}
void userblueled(uint8_t userledflag)// 0 off 1 on
{
if(userledflag == 1){
GPIO_RegOneBitClear(GPIO_A_OUT, GPIOA7);
APP_DBG("blue open\n");
}else{
GPIO_RegOneBitSet(GPIO_A_OUT, GPIOA7);
APP_DBG("blue close\n");
}
}
//300ms定时器
void Timer6Interrupt(void)
{
static uint8_t index = 0;//控制开关灯,快闪
static uint8_t index2 = 0;//控制开关灯,慢闪
index++;
switch (LEDFLAG)
{
case 0: break;
case 1: userredled(index % 2);userblueled((index + 1) % 2);usergreenled(0); break;//红蓝快闪
case 2: LEDFLAG = 0;userblueled(1);userredled(0);usergreenled(0); break;//蓝灯常量
case 3: //红蓝慢闪
if(index % 2)
{
index2++;
userredled(index2 % 2);
userblueled((index2 + 1) % 2);
usergreenled(0);
}
break;
case 4: LEDFLAG = 0;userblueled(0);userredled(0);usergreenled(1); break;//绿灯常亮
case 5: LEDFLAG = 0;userblueled(0);userredled(0);usergreenled(0); break;//关灯
default: break;
}
}
uint8_t 等价于 unsigned char 0-255
index % 2 的结果一次0,一次1
index index%2
252, 0
253, 1
254, 0
255, 1
0, 0
1, 1
2, 0
3, 1
4, 0
5, 1