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

📄 fun_s.c

📁 是用ARM7模拟RGB程序
💻 C
📖 第 1 页 / 共 2 页
字号:
		  data_out(rgbE1);
		  data_out(rgbE2);
		}


		for(j=0;j<k;j++)
		{

           data_out(rgbF1);
		   data_out(rgbF2);
		}

		for(j=0;j<k;j++)
		{

           data_out(rgbG1);
		   data_out(rgbG2);
		}

		for(j=0;j<k;j++)
		{
           data_out(rgbH1);
		   data_out(rgbH2);
		}
		
		
	}
}


/*===========================================================================
** 函数名称: dispColorX()
** 功能描述: 显示水平色条(8种颜色)
============================================================================*/
void dispColorX(uint16 row,  uint16 col,
                uint16 rgbA1,uint16 rgbA2,
                uint16 rgbB1,uint16 rgbB2,
                uint16 rgbC1,uint16 rgbC2,
                uint16 rgbD1,uint16 rgbD2,
                uint16 rgbE1,uint16 rgbE2,
                uint16 rgbF1,uint16 rgbF2,
                uint16 rgbG1,uint16 rgbG2,
                uint16 rgbH1,uint16 rgbH2
               )
{

    uint16 i,j,k;   
    k = row /8;
    
    //comm_out(0x21);
    //data_out(0x00);
    //data_out(0x00);
    
    

    for(i=0;i<k;i++)
	{
       for(j=0;j<col;j++)
	   {
          comm_out(0x22); 
          data_out(rgbA1);
		  data_out(rgbA2);
       }
	}

	
	for(i=0;i<k;i++)
	{
       for(j=0;j<col;j++)
	   {
          comm_out(0x22); 
          data_out(rgbB1);
		  data_out(rgbB2);
       }
	}

	
	for(i=0;i<k;i++)
	{
       for(j=0;j<col;j++)
	   {
           comm_out(0x22); 
           data_out(rgbC1);
		   data_out(rgbC2);
       }
	}

	

	for(i=0;i<k;i++)
	{
       for(j=0;j<col;j++)
	   {
           comm_out(0x22); 
           data_out(rgbD1);
		   data_out(rgbD2);
       }
	}
	
	
	for(i=0;i<k;i++)
	{
       for(j=0;j<col;j++)
	   {
          comm_out(0x22); 
          data_out(rgbE1);
		  data_out(rgbE2);
       }
	}

	
	for(i=0;i<k;i++)
	{
       for(j=0;j<col;j++)
	   {
           comm_out(0x22); 
           data_out(rgbF1);
		   data_out(rgbF2);
       }
	}

	
	for(i=0;i<k;i++)
	{
       for(j=0;j<col;j++)
	   {
           comm_out(0x22); 
           data_out(rgbG1);
		   data_out(rgbG2);
       }
	}

	

	for(i=0;i<k;i++)
	{
       for(j=0;j<col;j++)
	   {
          comm_out(0x22); 
          data_out(rgbH1);
		  data_out(rgbH2);
       }
	}
	
	
	//
	for(i=0;i<row%8;i++)
	{
       for(j=0;j<col;j++)
	   {
          comm_out(0x22); 
          data_out(rgbH1);
		  data_out(rgbH2);
       }
	}
	
	
	

}


/*===========================================================================
** 函数名称: dispColorW()
** 功能描述: 显示色块窗口(前景色和背景色)
============================================================================*/
void dispColorW(uint16 row,  uint16 col,
                uint16 Frgb1,uint16 Frgb2,
                uint16 Brgb1,uint16 Brgb2
               )
{

    uint16 i,j,k;
    k = row /4;
    
    //comm_out(0x21);
    //data_out(0x00);
    //data_out(0x00);
    for(i=0;i<k;i++)
	{
       for(j=0;j<col;j++)
	   {
	        comm_out(0x22);
	        data_out(Brgb1);
	        data_out(Brgb2);
       }
	}
	for(i=0;i<k*2;i++)
	{
       for(j=0;j<col/4;j++)
	   {
	        comm_out(0x22);
	        data_out(Brgb1);
	        data_out(Brgb2);
       }

	   for(j=0;j<col/2;j++)
	   {
	        comm_out(0x22);
	        data_out(Frgb1);
	        data_out(Frgb2);
       }
	   for(j=0;j<col/4;j++)
	   {
	        comm_out(0x22);
	        data_out(Brgb1);
	        data_out(Brgb2);
       }
	}


	for(i=0;i<k;i++)
	{
       for(j=0;j<col;j++)
	   {
	        comm_out(0x22);
	        data_out(Brgb1);
	        data_out(Brgb2);
       }
	}

}


/*===========================================================================
** 函数名称: dispColorG()
** 功能描述: 显示绿色渐变(绿 ->白)
============================================================================*/
void dispColorG(uint16 row,uint16 col)
{
    //white 0xff,0xff   red   0xf8,0x00   green 0x07,0xe0   blue  0x00,0x1f
	uint16 i,j;
    //comm_out(0x21);
    //data_out(0x00);
    //data_out(0x00);

	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
		   comm_out(0x22);
		   //data_out(0x07+(j/(col/32))*8);
		   //data_out(0xe0+j/(col/32));
		   data_out(0x07+j/(col/32+1)*8);
		   data_out(0xe0+j/(col/32+1));
		}
	}
}




/*===========================================================================
** 函数名称: dispSingleColorLine()
** 功能描述: 显示一行图形
============================================================================*/
void dispSingleColorLine(uint16 col,const uint8 *Graphic)
{
   
    uint16 i;

    //comm_out(0x21);
    //data_out(0x00);
    //data_out(0x00);

    for(i=0;i<col;i++)
    {
        comm_out(0x22);
	    data_out(*(Graphic++));
        data_out(*(Graphic++));
	    
	}


}

/*===========================================================================
** 函数名称: fillColorLine()
** 功能描述: 显示绿色渐变(绿->白或白->绿)
============================================================================*/
void fillColorLine(uint16 row,uint16 col,const uint8 *Graphic)
{
   
    uint16 i;


    //comm_out(0x21);
    //data_out(0x00);
    //data_out(0x00);
    
    for(i=0;i<row/2;i++)
    {
		dispSingleColorLine(col,Graphic);

    }
    
}

/*===========================================================================
** 函数名称: fillGrayRGB()
** 功能描述: 显示水平渐变色条
============================================================================*/
void fillGrayRGB(uint16 row,  uint16 col,
                const uint8 *Graphic_R1,
                const uint8 *Graphic_R2,
                const uint8 *Graphic_G1,
                const uint8 *Graphic_G2,
                const uint8 *Graphic_B1,
                const uint8 *Graphic_B2

               )
{

    uint16 i,k;   
    k = row /6;
    
    //comm_out(0x21);
    //data_out(0x00);
    //data_out(0x00);
    
    

    for(i=0;i<k;i++)
	{
		dispSingleColorLine(col,Graphic_R1);
	}

	
	for(i=0;i<k;i++)
	{
		dispSingleColorLine(col,Graphic_R2);
	}

	
	for(i=0;i<k;i++)
	{
		dispSingleColorLine(col,Graphic_G1);
	}

	

	for(i=0;i<k;i++)
	{
		dispSingleColorLine(col,Graphic_G2);

	}
	
	
	for(i=0;i<k;i++)
	{
		dispSingleColorLine(col,Graphic_B1);
	}

	
	for(i=0;i<k;i++)
	{
		dispSingleColorLine(col,Graphic_B2);
	}


	//
	for(i=0;i<row%6;i++)
	{

		dispSingleColorLine(col,Graphic_B2);

	}
	
	
	

}



/*===========================================================================
** 函数名称: fillGraphic_8()
** 功能描述: 显示图形(8*8,区分前景色和背景色)
============================================================================*/
void fillGraphic_8(uint16 row,uint16 col,
                   const uint8 *Graphic,
                   uint16 F_RGB1,uint16 F_RGB2,
                   uint16 B_RGB1,uint16 B_RGB2,
                   uint16 S_RGB1,uint16 S_RGB2
                  )
{
   
    uint16 n, i,j,k;
    uint8 tempGraphic;

    
    //comm_out(0x21);
    //data_out(0x00);
    //data_out(0x00);
    for(n=0;n<row/8;n++)
    {
        for(i=0;i<8;i++)
        {

          for(j=0;j<col/8;j++)
          {
             tempGraphic = Graphic[i];
             for(k=0;k<8;k++)
             {
  	             if(((tempGraphic)&(0x80))!= 0)
	             {
	                comm_out(0x22);
	             	data_out(F_RGB1);
	             	data_out(F_RGB2);

                 }else
                 {
	             	comm_out(0x22);
	             	data_out(B_RGB1);
	             	data_out(B_RGB2);
	             }
	             tempGraphic = tempGraphic << 1;
              }
           }
         }
     }
     
     
     
    // 
	for(i=0;i<row%8;i++)
	{
       for(j=0;j<col;j++)
	   {
          comm_out(0x22); 
          data_out(S_RGB1);
		  data_out(S_RGB2);
       }
	}
	

}



/*===========================================================================
** 函数名称: fillGraphic_16()
** 功能描述: 显示图形(16*16,区分前景色和背景色)
============================================================================*/
void fillGraphic_16(uint16 row,uint16 col,
                    const uint8  *Graphic,
                    uint16 F_RGB1,uint16 F_RGB2,
                    uint16 B_RGB1,uint16 B_RGB2,
                    uint16 S_RGB1,uint16 S_RGB2
                   )
{
        uint16 n, i,j,k;
        uint8 tempGraphic;
        
        
	    //comm_out(0x21);
	    //data_out(0x00);
	    //data_out(0x00);
	    
	    for(n=0;n<row/16;n++)
        {
            for(i=0;i<16;i++)
            {

	          for(j=0;j<col/16;j++)
              {
                 tempGraphic = Graphic[i*2];
                 for(k=0;k<8;k++)
	             {
	  	             if(((tempGraphic)&(0x80))!= 0)
		             {
	             	     data_out(F_RGB1);
	             	     data_out(F_RGB2);

	                 }else
	                 {
	             	     data_out(B_RGB1);
	             	     data_out(B_RGB2);
		             }
		              tempGraphic = tempGraphic << 1;
	              }

				 tempGraphic = Graphic[i*2+1];
				 for(k=0;k<8;k++)
	             {
	  	             if(((tempGraphic)&(0x80))!= 0)
		             {
	             	     data_out(F_RGB1);
	             	     data_out(F_RGB2);

	                 }else
	                 {
	             	     data_out(B_RGB1);
	             	     data_out(B_RGB2);
		             }
		             tempGraphic = tempGraphic << 1;
	              }
               }
             }
         }
         
        
       
        //
		for(i=0;i<row%16;i++)
		{
	       for(j=0;j<col;j++)
		   {
	          comm_out(0x22); 
	          data_out(S_RGB1);  
			  data_out(S_RGB2);
	       }
		}
		  

}



/*===========================================================================
** 函数名称: setContrast()
** 功能描述: 设置对比度
============================================================================*/
void setContrast(uint8 value)
{
    comm_out(0x0e);	// R0EH,Contrast and Brightness Control
	data_out(0x0f);
	data_out(value);	
}



/*===========================================================================
** 函数名称: adjustContrast()
** 功能描述: 改变对比度值,可增可减
============================================================================*/
void adjustContrast(uint8 type)
{

    switch(type)
    {
    	case 0:
    	
	    	if(G_CurrContrastValue > G_CurrContrastValue_MIN)
	    	{
			    G_CurrContrastValue --;
	   
	        }
	        else
	        {
	        	G_CurrContrastValue = G_CurrContrastValue_MIN;
	        }
	        
		    setContrast(G_CurrContrastValue);
		    break;    	
    		
    	case 1:
	    	if(G_CurrContrastValue < G_CurrContrastValue_MAX)
	    	{
			    G_CurrContrastValue ++;
	   
	        }
	        else
	        {
	        	G_CurrContrastValue = G_CurrContrastValue_MAX;
	        }
	        
		    setContrast(G_CurrContrastValue);
		    break;

    	default:
    	;
    }


}


/*===========================================================================
** 函数名称: enterSleepMode()
** 功能描述: 进入Sleep模式
============================================================================*/
void enterSleepMode(void)
{

	displayOffFunction();
	sleepSet();
}


/*===========================================================================
** 函数名称: exitSleepMode()
** 功能描述: 退出Sleep模式
============================================================================*/
void exitSleepMode(void)
{
	sleepCancel();
	displayOnFunction();
}




/*********************************************************************************************************
**                            End Of File
**********************************************************************************************************/

⌨️ 快捷键说明

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