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

📄 mode.c

📁 16路RGB_LED象素灯变色函数(AVR)代码
💻 C
📖 第 1 页 / 共 5 页
字号:
                        BlueTable[n+1]++;
                        }
                        if(BeginRcvFlag)break;         
                }
                for(k=0;k<Spd;k++){delay_us(5);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }
}    

//----------------------------------------------------------------------------------------------
void WhiteDimToBrightForwardChase(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(m=0;m<16*4;m++)
        {
                if(BlueTable[0]<16)
                {         
                        RedTable[0]++;           
                        GreenTable[0]++;
                        BlueTable[0]++;
                } 
                for(n=0;n<15;n++)
                {
                    if((BlueTable[n]>3)&(BlueTable[n+1]<16))
                        {          
                        RedTable[n+1]++;
                        GreenTable[n+1]++;
                        BlueTable[n+1]++;
                        }
                        if(BeginRcvFlag)break;      
                }    
                for(k=0;k<Spd;k++){delay_us(5);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }
}  
//////////////////////////////////////////////////////////////////////////////////////////////////////
//渐暗渐明回追          
//--------------------------------------------------------------------------------------------------
void RedDimToBrightBackwardChase(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(m=0;m<16*4;m++)
        {
                if(RedTable[15]<16)RedTable[15]++;
                for(n=15;n>0;n--)
                {
                        if((RedTable[n]>3)&(RedTable[n-1]<16))RedTable[n-1]++;
                        if(BeginRcvFlag)break;
                }
                for(k=0;k<Spd;k++){delay_us(1);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }       
}                             
//--------------------------------------------------------------------------------------------------
void GreenDimToBrightBackwardChase(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(m=0;m<16*4;m++)
        {
                if(GreenTable[15]<16)GreenTable[15]++;
                 for(n=15;n>0;n--)
                 {
                   if((GreenTable[n]>3)&(GreenTable[n-1]<16))GreenTable[n-1]++;
                   	if(BeginRcvFlag)break;
                 }
                for(k=0;k<Spd;k++){delay_us(1);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }       
}       
//--------------------------------------------------------------------------------------------------
void BlueDimToBrightBackwardChase(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(m=0;m<16*4;m++)
        {
                if(BlueTable[15]<16)BlueTable[15]++;
                for(n=15;n>0;n--)
                {
                      if((BlueTable[n]>3)&(BlueTable[n-1]<16))BlueTable[n-1]++; 
                      if(BeginRcvFlag)break; 
                }
                for(k=0;k<Spd;k++){delay_us(1);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }       
}      
//--------------------------------------------------------------------------------------------------
void YellowDimToBrightBackwardChase(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(m=0;m<16*4;m++)
        {
                if(GreenTable[15]<16)
                {
                        RedTable[15]++;
                        GreenTable[15]++;
                } 
                for(n=15;n>0;n--)
                {
                      if((GreenTable[n]>3)&(GreenTable[n-1]<16))      
                      {
                        RedTable[n-1]++;
                        GreenTable[n-1]++;
                      }  
                      if(BeginRcvFlag)break;
                }
                for(k=0;k<Spd;k++){delay_us(1);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }       
}  
//--------------------------------------------------------------------------------------------------
void CyanDimToBrightBackwardChase(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(m=0;m<16*4;m++)
        {
                if(GreenTable[15]<16) 
                {
                        BlueTable[15]++;
                        GreenTable[15]++;
                } 
                for(n=15;n>0;n--)
                {              
                   if((GreenTable[n]>3)&(GreenTable[n-1]<16))      
                   {
                        BlueTable[n-1]++;
                        GreenTable[n-1]++;
                   }  
                   if(BeginRcvFlag)break;   
                }    
                for(k=0;k<Spd;k++){delay_us(1);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }       
}                   
//--------------------------------------------------------------------------------------------------
void PurpleDimToBrightBackwardChase(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(m=0;m<16*4;m++)
        {
                if(BlueTable[15]<16)                          
                {
                        RedTable[15]++;
                        BlueTable[15]++;
                }
                for(n=15;n>0;n--)
                {
                   if((BlueTable[n]>3)&(BlueTable[n-1]<16))      
                   {
                        RedTable[n-1]++;
                        BlueTable[n-1]++;
                   } 
                   if(BeginRcvFlag)break;    
                }
                for(k=0;k<Spd;k++){delay_us(1);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }       
}                           
//--------------------------------------------------------------------------------------------------
void WhiteDimToBrightBackwardChase(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(m=0;m<16*4;m++)
        {
                if(BlueTable[15]<16)                          
                {
                        RedTable[15]++;
                        GreenTable[15]++;
                        BlueTable[15]++;
                }
                for(n=15;n>0;n--)
                { 
                        if((BlueTable[n]>3)&(BlueTable[n-1]<16))      
                        {
                                RedTable[n-1]++;
                                GreenTable[n-1]++;
                                BlueTable[n-1]++;
                        }
                        if(BeginRcvFlag)break;
                } 
              for(k=0;k<Spd;k++){delay_us(1);if(BeginRcvFlag)break;}
              if(BeginRcvFlag)break;
        }       
}   
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//慧星前追
//-----------------------------------------------------------------------------------------------------------
void RedCometForward(unsigned char Spd)
{
        unsigned char m,n,k; 
        unsigned char j[20]={16,10,6,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
        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<20;m++)
        {       
                for(n=15;n>0;n--){RedTable[n]=RedTable[n-1];if(BeginRcvFlag)break;}
                RedTable[0]=j[m];
                for(k=0;k<Spd;k++){delay_us(10);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }    
}    
//-----------------------------------------------------------------------------------------------------------
void GreenCometForward(unsigned char Spd)
{
        unsigned char m,n,k; 
        unsigned char j[20]={16,10,6,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
        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<20;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 BlueCometForward(unsigned char Spd)
{
        unsigned char m,n,k; 
        unsigned char j[20]={16,10,6,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
        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<20;m++)
        {       
                for(n=15;n>0;n--){BlueTable[n]=BlueTable[n-1];if(BeginRcvFlag)break;}
                BlueTable[0]=j[m];
                for(k=0;k<Spd;k++){delay_us(10);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }    
}    
//-----------------------------------------------------------------------------------------------------------
void YellowCometForward(unsigned char Spd)
{
        unsigned char m,n,k; 
        unsigned char j[20]={16,10,6,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
        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<20;m++)
        {       
                for(n=15;n>0;n--)
                {
                	GreenTable[n]=GreenTable[n-1];
                	RedTable[n]=RedTable[n-1];
                	if(BeginRcvFlag)break;
                }
                GreenTable[0]=j[m];  
                RedTable[0]=j[m]; 
                for(k=0;k<Spd;k++){delay_us(10);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }    
}    
//-----------------------------------------------------------------------------------------------------------
void CyanCometForward(unsigned char Spd)
{
        unsigned char m,n,k; 
        unsigned char j[20]={16,10,6,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
        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<20;m++)
        {       
                for(n=15;n>0;n--)
                {
                	GreenTable[n]=GreenTable[n-1];
                	BlueTable[n]=BlueTable[n-1];
                	if(BeginRcvFlag)break;
                }
                GreenTable[0]=j[m];  
                BlueTable[0]=j[m]; 
                for(k=0;k<Spd;k++){delay_us(10);if(BeginRcvFlag)break;}
        }    
}                       
//-----------------------------------------------------------------------------------------------------------
void PurpleCometForward(unsigned char Spd)
{
        unsigned char m,n,k; 
        unsigned char j[20]={16,10,6,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
        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<20;m++)
        {       
                for(n=15;n>0;n--)
                {
                	RedTable[n]=RedTable[n-1];
                	BlueTable[n]=BlueTable[n-1];
                	if(BeginRcvFlag)break;
                }
                RedTable[0]=j[m];  
                BlueTable[0]=j[m]; 
                for(k=0;k<Spd;k++){delay_us(10);if(BeginRcvFlag)break;}
                if(BeginRcvFlag)break;
        }    
}               
//-----------------------------------------------------------------------------------------------------------
void WhiteCometForward(unsigned char Spd)
{
        unsigned char m,n,k; 
        unsigned char j[20]={16,10,6,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
        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<20;m++)
        {       

⌨️ 快捷键说明

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