|
//-------------------------------1
for(i1=0;i1<2;i1++)
{
for(i=0;i<8;i++)
{
GPIO_Write(GPIOC,led_right[0]);
_Delay_ms(300);
o=led_right[0]<<1;
k=led_right[0]>>7;
led_right[0]=o|k;
}
}
led_right[0]=0xffff;
GPIO_Write(GPIOC,led_right[0]);
led_right[0]=0xfe;
//---------------------------------2
for(i=0;i<8;i++)
{
GPIO_Write(GPIOC,led_right[0]);
_Delay_ms(300);
led_right[0]<<=1;
}
led_right[0]=0xffff;
GPIO_Write(GPIOC,led_right[0]);
led_right[0]=0x7f;
//---------------------------------3
for(i=0;i<8;i++)
{
GPIO_Write(GPIOC,led_right[0]);
_Delay_ms(300);
led_right[0]>>=1;
}
led_right[0]=0xffff;
GPIO_Write(GPIOC,led_right[0]);
led_right[0]=0xfe;
//---------------------------------4
for(i1=0;i1<8;i1++)
{
led_right[1]=0xfe;
led_right[0]= led_right[1]&(led_right[0]|m);
for(i=0;i<7-i1;i++)
{
GPIO_Write(GPIOC,led_right[0]);
_Delay_ms(300);
m=~led_right[1];
o=led_right[1]<<1;
k=led_right[1]>>7;
led_right[1]=o|k;
led_right[0]= led_right[1]&(led_right[0]|m);
}
GPIO_Write(GPIOC,led_right[0]);
_Delay_ms(300);
上面是部分流水灯程序,我比较倾向于使用移位操作,而不是定义所有的显示数组。
|
|