太难了,这个io操作的太难了
正流水和反流水,花样灯也按照下面的改也行。。。。。。太麻烦了。
void LED_cycle(uint8_t mode)
{
if(mode)//灯效模式
{
switch(LedTiming /125%10)
{
case 0: LED_Control(LED1,0); LED_Control(LED8,1); break;
case 1: LED_Control(LED2,0); LED_Control(LED1,1); break;
case 2: LED_Control(LED3,0); LED_Control(LED2,1); break;
case 3: LED_Control(LED4,0); LED_Control(LED3,1); break;
case 4: LED_Control(LED5,0); LED_Control(LED4,1); break;
case 5: LED_Control(LED6,0); LED_Control(LED5,1); break;
case 6: LED_Control(LED7,0); LED_Control(LED6,1); break;
case 7: LED_Control(LED8,0); LED_Control(LED7,1); break;
}
}
else
{
switch(LedTiming /125%10)
{
case 0: LED_Control(LED8,0); LED_Control(LED1,1); break;
case 1: LED_Control(LED7,0); LED_Control(LED8,1); break;
case 2: LED_Control(LED6,0); LED_Control(LED7,1); break;
case 3: LED_Control(LED5,0); LED_Control(LED6,1); break;
case 4: LED_Control(LED4,0); LED_Control(LED5,1); break;
case 5: LED_Control(LED3,0); LED_Control(LED4,1); break;
case 6: LED_Control(LED2,0); LED_Control(LED3,1); break;
case 7: LED_Control(LED1,0); LED_Control(LED2,1); break;
}
}
}
void LED_cycle(uint8_t mode);
//主函数里面
LED_Control(LED_All,1);//全灭
if(led_flag == 1)LED_cycle(1,0);//按键控制led_flag数值。
if(led_flag == 2)LED_cycle(1,1);
//一个简单的延时
void SysTick_Handler(void)
{
LedTiming ++;
if(LedTiming >= 1000) LedTiming = 0;
TimingDelay--;
}