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

📄 mode.c

📁 16路RGB_LED象素灯变色函数(AVR)代码
💻 C
📖 第 1 页 / 共 5 页
字号:
#include "IODefine.c"
unsigned char RedTable[16];
unsigned char GreenTable[16];
unsigned char BlueTable[16];  
///////////////////////////////////////////////////////////////////////////////////////////////////////
//   
//全暗
//-----------------------------------------------------------------------------------------------
void Clr(void)
{
      unsigned char m; 
      for(m=0;m<16;m++)
      {
        RedTable[m]=0x00;
        GreenTable[m]=0x00;
        BlueTable[m]=0x00; 
        if(BeginRcvFlag)break;      
      }   
}
//------------------------------------------------------------------------------------------------
//静态红
void StaticRed(void)
{
        unsigned char m; 
        for(m=0;m<16;m++)
        {
                RedTable[m]=0xff;
                GreenTable[m]=0x00;
                BlueTable[m]=0x00; 
                if(BeginRcvFlag)break;      
        }
}
//------------------------------------------------------------------------------------------------
//静态绿
void StaticGreen(void)
{
        unsigned char m;
        for(m=0;m<16;m++)
        {
                RedTable[m]=0x00;
                GreenTable[m]=0xff;
                BlueTable[m]=0x00; 
                if(BeginRcvFlag)break;      
        }
}
//------------------------------------------------------------------------------------------------
//静态蓝
void StaticBlue(void)
{
        unsigned char m;
        for(m=0;m<16;m++)
        {
                RedTable[m]=0x00;
                GreenTable[m]=0x00;
                BlueTable[m]=0xff; 
                if(BeginRcvFlag)break;      
        }
}      

//------------------------------------------------------------------------------------------------
//静态黄
void StaticYellow(void)
{
        unsigned char m;
        for(m=0;m<16;m++)
        {
                RedTable[m]=0xff;
                GreenTable[m]=0xff;
                BlueTable[m]=0x00;   
                if(BeginRcvFlag)break;    
        }
}
//------------------------------------------------------------------------------------------------
//静态青
void StaticCyan(void)
{
        unsigned char m;
        for(m=0;m<16;m++)
        {
                RedTable[m]=0x00;
                GreenTable[m]=0xff;
                BlueTable[m]=0xff; 
                if(BeginRcvFlag)break;      
        }
}  
//------------------------------------------------------------------------------------------------
//静态紫
void StaticPurple(void)
{
        unsigned char m;
        for(m=0;m<16;m++)
        {
                RedTable[m]=0x00;
                GreenTable[m]=0xff;
                BlueTable[m]=0xff;
                if(BeginRcvFlag)break;       
        }
}  
//------------------------------------------------------------------------------------------------
//静态白
void StaticWhite(void)
{
        unsigned char m;
        for(m=0;m<16;m++)
        {
                RedTable[m]=0xff;
                GreenTable[m]=0xff;
                BlueTable[m]=0xff; 
                if(BeginRcvFlag)break;      
        }
} 
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//全闪烁 
//红闪
//------------------------------------------------------------------------------------------------
void RedSynchFlash(unsigned char Spd)
{
        unsigned char m;    
        for(m=0;m<16;m++)
        {
                RedTable[m]=0xff;
                GreenTable[m]=0x00;
                BlueTable[m]=0x00;  
                if(BeginRcvFlag)break;  
        }
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
        for(m=0;m<16;m++)
        {
                RedTable[m]=0x00;
                GreenTable[m]=0x00;
                BlueTable[m]=0x00; 
                if(BeginRcvFlag)break;   
        } 
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
}
//------------------------------------------------------------------------------------------------
//绿闪
void GreenSynchFlash(unsigned char Spd)
{
        unsigned char m;
        for(m=0;m<16;m++)
        {
                RedTable[m]=0x00;
                GreenTable[m]=0xff;
                BlueTable[m]=0x00; 
                if(BeginRcvFlag)break;      
        }
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
        for(m=0;m<16;m++)
        {
                RedTable[m]=0x00;
                GreenTable[m]=0x00;
                BlueTable[m]=0x00;  
                if(BeginRcvFlag)break;     
        } 
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
}
//------------------------------------------------------------------------------------------------
//蓝闪
void BlueSynchFlash(unsigned char Spd)
{
        unsigned char m;
        for(m=0;m<16;m++)
        {
                RedTable[m]=0x00;
                GreenTable[m]=0x00;
                BlueTable[m]=0xff; 
                if(BeginRcvFlag)break;      
        }
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
        for(m=0;m<16;m++)
        {
                RedTable[m]=0x00;
                GreenTable[m]=0x00;
                BlueTable[m]=0x00;   
                if(BeginRcvFlag)break;    
        } 
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
}
//------------------------------------------------------------------------------------------------
//黄闪
void YellowSynchFlash(unsigned char Spd)
{
        unsigned char m;
        for(m=0;m<16;m++)
        {
                RedTable[m]=0xff;
                GreenTable[m]=0xff;
                BlueTable[m]=0x00;  
                if(BeginRcvFlag)break;     
        }
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
        for(m=0;m<16;m++)
        {
                RedTable[m]=0x00;
                GreenTable[m]=0x00;
                BlueTable[m]=0x00; 
                if(BeginRcvFlag)break;      
        } 
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
}
//------------------------------------------------------------------------------------------------
//青闪
void CyanSynchFlash(unsigned char Spd)
{
        unsigned char m;
        for(m=0;m<16;m++)
        {
                RedTable[m]=0x00;
                GreenTable[m]=0xff;
                BlueTable[m]=0xff; 
                if(BeginRcvFlag)break;      
        }
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
        for(m=0;m<16;m++)
        {
                RedTable[m]=0x00;
                GreenTable[m]=0x00;
                BlueTable[m]=0x00; 
                if(BeginRcvFlag)break;      
        } 
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
}    
//------------------------------------------------------------------------------------------------
//紫闪
void PurpleSynchFlash(unsigned char Spd)
{
        unsigned char m;
        for(m=0;m<16;m++)
        {
                RedTable[m]=0xff;
                GreenTable[m]=0x00;
                BlueTable[m]=0xff; 
                if(BeginRcvFlag)break;      
        }
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break; }
        for(m=0;m<16;m++)
        {
                RedTable[m]=0x00;
                GreenTable[m]=0x00;
                BlueTable[m]=0x00; 
                if(BeginRcvFlag)break;      
        } 
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
}   
//-------------------------------------------------------------------------------------------------- 
//白闪
void WhiteSynchFlash(unsigned char Spd)
{
        unsigned char m;
        for(m=0;m<16;m++)
        {
                RedTable[m]=0xff;
                GreenTable[m]=0xff;
                BlueTable[m]=0xff; 
                if(BeginRcvFlag)break;      
        }
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
        for(m=0;m<16;m++)
        {
                RedTable[m]=0x00;
                GreenTable[m]=0x00;
                BlueTable[m]=0x00; 
                if(BeginRcvFlag)break;      
        } 
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
}                 
//------------------------------------------------------------------------------------------------
//七色闪变
void SevenSynchFlash(unsigned char Spd)
{
        unsigned char m;
        StaticRed();
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
        StaticGreen();
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
        StaticBlue();
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
        StaticYellow();
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
        StaticPurple();
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
        StaticWhite();
        for(m=0;m<Spd;m++){delay_us(10);if(BeginRcvFlag)break;}
}  
///////////////////////////////////////////////////////////////////////////////////////////////////
//渐明渐暗    
//红渐变
//------------------------------------------------------------------------------------------------
void RedSynchSmooth(unsigned char Spd)
{
        unsigned char m,n,k; 
        Clr();
        for(m=0;m<16;m++)
        {          
                for(k=0;k<Spd;k++)
                {
                        for(n=0;n<16;n++)
                        {
                                RedTable[n]=m;
                                if(BeginRcvFlag)break;
                        } 
                        if(BeginRcvFlag)break; 
                }
                if(BeginRcvFlag)break;
                
        }
        
        for(m=15;m>0;m--)
        {       
                for(k=0;k<Spd;k++)
                {
                        for(n=0;n<16;n++)
                        {
                                RedTable[n]=m;
                                if(BeginRcvFlag)break;
                        }
                        if(BeginRcvFlag)break;
                }
                if(BeginRcvFlag)break;
        }          
}   
//-----------------------------------------------------------------------------------------------
//绿渐变
void GreenSynchSmooth(unsigned char Spd)
{
        unsigned char m,n,k; 
        Clr();
        for(m=0;m<16;m++)
        {          
                for(k=0;k<Spd;k++)
                {
                        for(n=0;n<16;n++)
                        {
                                GreenTable[n]=m;
                                if(BeginRcvFlag)break;
                        } 
                        if(BeginRcvFlag)break; 
                }

⌨️ 快捷键说明

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