⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mode.c

📁 16路RGB_LED象素灯变色函数(AVR)代码
💻 C
📖 第 1 页 / 共 5 页
字号:
        unsigned char j[21]={1,3,6,10,12,16,12,10,6,3,1,3,6,10,12,16,12,10,6,3,1};
        for(m=0;m<16;m++){RedTable[m]=0x00; if(BeginRcvFlag)break;}
        for(m=0;m<16;m++){GreenTable[m]=0x00;if(BeginRcvFlag)break;}
        //for(m=0;m<16;m++)BlueTable[m]=0x00; 
        for(m=0;m<21;m++)
        {       
                for(n=0;n<15;n++){BlueTable[n]=BlueTable[n+1];if(BeginRcvFlag)break;}
                BlueTable[15]=j[m];
                for(k=0;k<Spd;k++){delay_us(10);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }    		
}
//---------------------------------------------------------------------------------------------
void CyanWaveBackwardChase(unsigned char Spd)
{
				unsigned char m,n,k; 
        unsigned char j[21]={1,3,6,10,12,16,12,10,6,3,1,3,6,10,12,16,12,10,6,3,1};
        for(m=0;m<16;m++){RedTable[m]=0x00; if(BeginRcvFlag)break;}
        //for(m=0;m<16;m++)GreenTable[m]=0x00;
       // for(m=0;m<16;m++)BlueTable[m]=0x00; 
        for(m=0;m<21;m++)
        {       
                for(n=0;n<15;n++)
                {
                	BlueTable[n]=BlueTable[n+1];
                	GreenTable[n]=GreenTable[n+1];
                	if(BeginRcvFlag)break;
                }
                BlueTable[15]=j[m];
                GreenTable[15]=j[m];
                for(k=0;k<Spd;k++){delay_us(10);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }    		
}
//---------------------------------------------------------------------------------------------
void YellowWaveBackwardChase(unsigned char Spd)
{
				unsigned char m,n,k; 
        unsigned char j[21]={1,3,6,10,12,16,12,10,6,3,1,3,6,10,12,16,12,10,6,3,1};
        for(m=0;m<16;m++){RedTable[m]=0x00; if(BeginRcvFlag)break;}
        for(m=0;m<16;m++){GreenTable[m]=0x00;if(BeginRcvFlag)break;}
       // for(m=0;m<16;m++)BlueTable[m]=0x00; 
        for(m=0;m<21;m++)
        {       
                for(n=0;n<15;n++)
                {
                	 RedTable[n]=RedTable[n+1];
                	GreenTable[n]=GreenTable[n+1];
                	if(BeginRcvFlag)break;
                }
                RedTable[15]=j[m];
                GreenTable[15]=j[m];
                for(k=0;k<Spd;k++){delay_us(10);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }    		
}
//---------------------------------------------------------------------------------------------
void PurpleWaveBackwardChase(unsigned char Spd)
{
				unsigned char m,n,k; 
        unsigned char j[21]={1,3,6,10,12,16,12,10,6,3,1,3,6,10,12,16,12,10,6,3,1};
        //for(m=0;m<16;m++)RedTable[m]=0x00; 
        for(m=0;m<16;m++){GreenTable[m]=0x00;if(BeginRcvFlag)break;}
       // for(m=0;m<16;m++)BlueTable[m]=0x00; 
        for(m=0;m<21;m++)
        {       
                for(n=0;n<15;n++)
                {
                	RedTable[n]=RedTable[n+1];
                  BlueTable[n]=BlueTable[n+1];
                  if(BeginRcvFlag)break;
                }
                RedTable[15]=j[m];
                BlueTable[15]=j[m];
                for(k=0;k<Spd;k++){delay_us(10);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }    		
}
//---------------------------------------------------------------------------------------------
void WhiteWaveBackwardChase(unsigned char Spd)
{
				unsigned char m,n,k; 
        unsigned char j[16]={1,2,3,4,6,9,12,16,16,12,9,6,4,3,2,1};
        for(m=0;m<16;m++){RedTable[m]=0x00; if(BeginRcvFlag)break;}
        for(m=0;m<16;m++){GreenTable[m]=0x00;if(BeginRcvFlag)break;}
        for(m=0;m<16;m++){BlueTable[m]=0x00; if(BeginRcvFlag)break;}
        for(m=0;m<21;m++)
        {       
                for(n=0;n<15;n++)
                {
                	 RedTable[n]=RedTable[n+1];
                	 GreenTable[n]=GreenTable[n+1];
                	 BlueTable[n]=BlueTable[n+1];
                	 if(BeginRcvFlag)break;
                }
                RedTable[15]=j[m];
                GreenTable[15]=j[m];
                BlueTable[15]=j[m];
                for(k=0;k<Spd;k++){delay_us(10);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }    		
}
//--------------------------------------------------------------------------------------------------
void ThreeColorWaveBackwardChase(unsigned char Spd)
{
 
	unsigned char m,n,k,r,g,b; 
	unsigned char j1[16]={15,10,6,2,1,0,0,0,0,0,0,0,0,0,0,0};
	unsigned char j2[16]={0,0,0,0,0,0,15,10,6,2,1,0,0,0,0,0};
	unsigned char j3[16]={0,0,0,0,0,0,0,0,0,0,0,15,10,6,2,1};
	for(m=0;m<16;m++)
	{
		 RedTable[m]=j1[m];
		 GreenTable[m]=j2[m];
		 BlueTable[m]=j3[m];
		 if(BeginRcvFlag)break;
	}
        for(m=0;m<100;m++)
        {       
                        r=RedTable[0];
                        g=GreenTable[0];
                        b=BlueTable[0];
                        for(n=0;n<15;n++)
                        {
                                RedTable[n]=RedTable[n+1]; 
                                GreenTable[n]=GreenTable[n+1];
                                BlueTable[n]=BlueTable[n+1];
                                if(BeginRcvFlag)break;
                        }
                        RedTable[15]=r;
                        GreenTable[15]=g;
                        BlueTable[15]=b;
                  for(k=0;k<Spd;k++){delay_us(10);if(BeginRcvFlag)break;}
                  if(BeginRcvFlag)break;
        }    					
}
//////////////////////////////////////////////////////////////////////////////////////////////////////// 
//向前跳滑行
//-----------------------------------------------------------------------------------------------------
void RedForwardJump(unsigned char Spd)
{
	unsigned char m,n,k;
	for(m=0;m<16;m++){RedTable[m]=0x00;if(BeginRcvFlag)break;}
	for(m=0;m<16;m++){GreenTable[m]=0x00;if(BeginRcvFlag)break;}
        for(m=0;m<16;m++){BlueTable[m]=0x00;if(BeginRcvFlag)break;}
        for(k=0;k<Spd;k++)delay_us(200); 
        RedTable[15]=15;
	for(m=0;m<16;m++)
	{
                for(n=0;n<15;n++){RedTable[n]=RedTable[n+1];if(BeginRcvFlag)break;}
                for(k=0;k<Spd;k++){delay_us(20);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
	}
}            
//---------------------------------------------------------------------------------------------------- 
void GreenForwardJump(unsigned char Spd)
{
	unsigned char m,n,k;
	for(m=0;m<16;m++){GreenTable[m]=0x00;if(BeginRcvFlag)break;}
	for(m=0;m<16;m++){RedTable[m]=0x00;if(BeginRcvFlag)break;}
        for(m=0;m<16;m++){BlueTable[m]=0x00;if(BeginRcvFlag)break;}
        for(k=0;k<Spd;k++)delay_us(200);
        GreenTable[15]=15;
	for(m=0;m<16;m++)
	{
                for(n=0;n<15;n++){GreenTable[n]=GreenTable[n+1];if(BeginRcvFlag)break;}
                for(k=0;k<Spd;k++){delay_us(20);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
	}
}
//---------------------------------------------------------------------------------------------------- 
void BlueForwardJump(unsigned char Spd)
{
	unsigned char m,n,k;
	for(m=0;m<16;m++){BlueTable[m]=0x00;if(BeginRcvFlag)break;}
	for(m=0;m<16;m++){RedTable[m]=0x00;if(BeginRcvFlag)break;}
  for(m=0;m<16;m++){GreenTable[m]=0x00;if(BeginRcvFlag)break;}
  for(k=0;k<Spd;k++){delay_us(200);if(BeginRcvFlag)break;}
  BlueTable[15]=15;
	for(m=0;m<16;m++)
	{
                for(n=0;n<15;n++){BlueTable[n]=BlueTable[n+1];if(BeginRcvFlag)break;}
                for(k=0;k<Spd;k++){delay_us(20);}
                if(BeginRcvFlag)break;
	}
}   
 //-----------------------------------------------------------------------------------------------------
void YellowForwardJump(unsigned char Spd)
{
	unsigned char m,n,k;
for(m=0;m<16;m++){RedTable[m]=0x00;if(BeginRcvFlag)break;if(BeginRcvFlag)break;}
for(m=0;m<16;m++){GreenTable[m]=0x00;if(BeginRcvFlag)break;if(BeginRcvFlag)break;}
for(m=0;m<16;m++){BlueTable[m]=0x00;if(BeginRcvFlag)break;if(BeginRcvFlag)break;}
  for(k=0;k<Spd;k++){delay_us(200);if(BeginRcvFlag)break;}
  RedTable[15]=15;
  GreenTable[15]=15;
	for(m=0;m<16;m++)
	{
                for(n=0;n<15;n++)
                {
                	RedTable[n]=RedTable[n+1];
                	GreenTable[n]=GreenTable[n+1];
                	if(BeginRcvFlag)break;
                }
                for(k=0;k<Spd;k++){delay_us(20);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
	}
}                                
 //-----------------------------------------------------------------------------------------------------
void CyanForwardJump(unsigned char Spd)
{
	unsigned char m,n,k;
	for(m=0;m<16;m++){BlueTable[m]=0x00;if(BeginRcvFlag)break;}
	for(m=0;m<16;m++){GreenTable[m]=0x00;if(BeginRcvFlag)break;}
        for(m=0;m<16;m++){RedTable[m]=0x00;if(BeginRcvFlag)break;}
        for(k=0;k<Spd;k++){delay_us(200);if(BeginRcvFlag)break;}
        BlueTable[15]=15;
        GreenTable[15]=15;
	for(m=0;m<16;m++)
	{ 
                for(n=0;n<15;n++)
                {
                	BlueTable[n]=BlueTable[n+1];
                	GreenTable[n]=GreenTable[n+1];
                	if(BeginRcvFlag)break;
                }
                for(k=0;k<Spd;k++){delay_us(20);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
	}
}
 //-----------------------------------------------------------------------------------------------------
void PurpleForwardJump(unsigned char Spd)
{
	unsigned char m,n,k;
	for(m=0;m<16;m++){RedTable[m]=0x00;if(BeginRcvFlag)break;}
	for(m=0;m<16;m++){BlueTable[m]=0x00;if(BeginRcvFlag)break;}
  for(m=0;m<16;m++){GreenTable[m]=0x00;if(BeginRcvFlag)break;}
  for(k=0;k<Spd;k++){delay_us(200);if(BeginRcvFlag)break;}
  RedTable[15]=15;
  BlueTable[15]=15;
	for(m=0;m<16;m++)
	{
                for(n=0;n<15;n++)
                {
                	RedTable[n]=RedTable[n+1];
                	BlueTable[n]=BlueTable[n+1];
                	if(BeginRcvFlag)break;
                }
                for(k=0;k<Spd;k++){delay_us(20);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
	}
}                                       
 //-----------------------------------------------------------------------------------------------------
void WhiteForwardJump(unsigned char Spd)
{
	unsigned char m,n,k;
	for(m=0;m<16;m++){RedTable[m]=0x00;if(BeginRcvFlag)break;}
	for(m=0;m<16;m++){BlueTable[m]=0x00;if(BeginRcvFlag)break;}
  for(m=0;m<16;m++){GreenTable[m]=0x00;if(BeginRcvFlag)break;}
  for(k=0;k<Spd;k++){delay_us(200);if(BeginRcvFlag)break;}
  RedTable[15]=15;
  BlueTable[15]=15;
  GreenTable[15]=15;
	for(m=0;m<16;m++)
	{
                for(n=0;n<15;n++)
                {
                	RedTable[n]=RedTable[n+1];
                	GreenTable[n]=GreenTable[n+1];
                	BlueTable[n]=BlueTable[n+1];
                	if(BeginRcvFlag)break;
                }
                for(k=0;k<Spd;k++){delay_us(20);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////
//向后跳滑行
//-----------------------------------------------------------------------------------------------------
void RedBackwardJump(unsigned char Spd)
{
	unsigned char m,n,k;	
	
	for(m=0;m<16;m++){RedTable[m]=0x00;if(BeginRcvFlag)break;}
	for(m=0;m<16;m++){GreenTable[m]=0x00;if(BeginRcvFlag)break;}
        for(m=0;m<16;m++){BlueTable[m]=0x00;if(BeginRcvFlag)break;}
        for(k=0;k<Spd;k++){delay_us(200);if(BeginRcvFlag)break;}
        RedTable[0]=15;
	for(m=0;m<16;m++)
	{
                for(n=15;n>0;n--)
                {
                        RedTable[n]=RedTable[n-1];
                        if(BeginRcvFlag)break;
                }
                for(k=0;k<Spd;k++){delay_us(10);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
	}
}
//-----------------------------------------------------------------------------------------------------
void GreenBackwardJump(unsigned char Spd)
{
	unsigned char m,n,k;	
	
	for(m=0;m<16;m++){GreenTable[m]=0x00;if(BeginRcvFlag)break;}
	for(m=0;m<16;m++){RedTable[m]=0x00;if(BeginRcvFlag)break;}
        for(m=0;m<16;m++){BlueTable[m]=0x00;if(BeginRcvFlag)break;}
        for(k=0;k<Spd;k++){delay_us(200);if(BeginRcvFlag)break;}
        GreenTable[0]=15;
	for(m=0;m<16;m++)
	{
                for(n=15;n>0;n--)
                {
                        GreenTable[n]=GreenTable[n-1];	
                        if(BeginRcvFlag)break;
                }
                for(k=0;k<Spd;k++){delay_us(10);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
	}
} 
//-----------------------------------------------------------------------------------------------------
void BlueBackwardJump(unsigned char Spd)
{
	unsigned char m,n,k;	
	
	for(m=0;m<16;m++){BlueTable[m]=0x00;if(BeginRcvFlag)break;}
	for(m=0;m<16;m++){RedTable[m]=0x00;if(BeginRcvFlag)break;}
  for(m=0;m<16;m++){GreenTable[m]=0x00;if(BeginRcvFlag)break;}
  for(k=0;k<Spd;k++){delay_us(200);if(BeginRcvFlag)break;}
  BlueTable[0]=15;
	for(m=0;m<16;m++)
	{
                for(n=15;n>0;n--){BlueTable[n]=BlueTable[n-1];if(BeginRcvFlag)break;}
                for(k=0;k<Spd;k++){delay_us(10);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
	}
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -