第十一届蓝桥杯嵌入式组别底层驱动程序-流水灯

太难了,这个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--;
}

猜你喜欢

转载自blog.csdn.net/weixin_43352501/article/details/103427533