示例#1
0
void RXLCD_DrawLine(unsigned short XS,unsigned short YS,unsigned short XE ,unsigned short YE,unsigned short color)
{
Draw_Line(XS,XE,YS,YE);//画矩形
    Text_Foreground_Color1(color);//颜色设定
	Write_Dir(0X90,0X30);//设定参数
    Write_Dir(0X90,0XB0);//开始画
}
示例#2
0
//--------------------------------------------------
// Description  : LCD backlight control
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CPowerPanelControl(void)
{
    if(g_uiPowerStatus == 1)
    {
        if(g_uiBacklightOffCounter == 0x0)
        {
            if(g_uiPanelStatus == 1)//((GPIO4->FIOPIN & (1UL<< 28)) == (1UL<< 28))
            {
                g_uiPanelStatus = 0;
                #if(_PANEL_TYPE == _PANEL_EMBEST)
                GPIO4->FIOCLR   = (1UL<< 28);             /* Turn backlight off */        
                #elif(_PANEL_TYPE == _PANEL_RX)
                Write_Dir(0x01,0x00);
                Write_Dir(0x8b,0x00);
                #endif
            }
        }
        else
        {
            if(g_uiPanelStatus == 0)//((GPIO4->FIOPIN & (1UL<< 28)) == 0x00)
            {
                g_uiPanelStatus = 1;
                #if(_PANEL_TYPE == _PANEL_EMBEST)
                GPIO4->FIOSET   = (1UL<< 28);             /* Turn backlight on */
                #elif(_PANEL_TYPE == _PANEL_RX)
                Write_Dir(0x01,0x80);
                Write_Dir(0x8b,0x05);
                #endif
            }
        }
    }
}
示例#3
0
//--------------------------------------------------
// Description  : Execute power up/down process
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CPowerControl(void)
{
    if(g_uiPowerStatus == 1)//power down process
    {
        g_uiPowerStatus = 0;
        g_uiSystemState = _PWOFF_STATE;
        #if(_PANEL_TYPE == _PANEL_EMBEST)
        GPIO4->FIOCLR   = (1UL<< 28);             /* Turn backlight off */        
        GLCD_clear(Black);
        #elif(_PANEL_TYPE == _PANEL_RX)
        //Write_Dir(0x01,0x00);
        //Write_Dir(0x8b,0x00);
       // RXLCD_clear(0x00);
        #endif
       // SC->PCONP     = PCONP_STANDBY_Val;        /* Power Control for Peripherals      */
       GPIO0->FIOCLR |= (1ul<<8);
        Write_Dir(0X01,0X00);
    }
    else//power up process
    {
        g_uiPowerStatus = 1;
        g_uiSystemState = _INITIAL_STATE;
        GPIO4->FIOSET   = (1UL<< 28);             /* Turn backlight on */
        CDeviceInit();
        
    }

    return;
}
示例#4
0
void CutPictrue(uchar picnum,uint x1,uint y1,uint x2,uint y2,unsigned long x,unsigned long y)
{unsigned long cutaddress;uchar picnumtemp;
    Write_Dir(0X06,0X00);//FLASH frequency setting
   	Write_Dir(0X05,0Xac);//FLASH setting

	picnumtemp=picnum;

   	Write_Dir(0XBF,0X02);//FLASH setting
   	Active_Window(x1,x2,y1,y2);
   	MemoryWrite_Position(x1,y1);//Memory write position
   	cutaddress=(picnumtemp-1)*261120+y*960+x*2;
   	DMA_Start_address_setting(cutaddress);
   	DMA_block_mode_size_setting(x2-x1+1,y2-y1+1,480);
   	Write_Dir(0XBF,0X03);//FLASH setting
	Chk_DMA_Busy();
}
示例#5
0
void RXLCD_clear (unsigned char Color) 
{
    Active_Window(0,479,0,271);//设置区域显示窗口
    Text_Foreground_Color1(0xffff);//前景颜色设定
    Text_Background_Color1(0xffff);//背景颜色设定
    Write_Dir(0X8E,0X80);//开始清屏(显示窗口)
    Delay10ms(5); 
}
示例#6
0
//****************剪切图片
//剪切第picnum幅的图片,放在x1,y1,x2,y2在屏幕显示的区域坐标,x,y为要剪切图片的左上角坐标
void CutPicture(unsigned char picnum,unsigned short x1,unsigned short y1,unsigned short x2,unsigned short y2,unsigned short x,unsigned short y)
{
unsigned long cutaddress, picnumtemp;
    Write_Dir(0X06,0X00);//FLASH频率设定
   if(picnum<61)
   {
   Write_Dir(0X05,0X06);//FLASH设置	  ac cs1,2c cs0
    Write_Dir(0Xc7,0X01);
	picnumtemp=picnum;
   }
   if(picnum>60&picnum<121)
   {
   Write_Dir(0X05,0X86); //ac
    Write_Dir(0Xc7,0X00);
	picnumtemp=picnum-60;
   }
   Write_Dir(0XBF,0X02);//FLASH设置
   Active_Window(x1,x2,y1,y2);		
   MemoryWrite_Position(x1,y1);//内存写入位置
   cutaddress=(picnumtemp-1)*262144+y*960+x*2;
   DMA_Start_address_setting(cutaddress);
   DMA_block_mode_size_setting(x2-x1+1,y2-y1+1,480);
   Write_Dir(0XBF,0X03);//FLASH设置
Chk_DMA_Busy();
}
示例#7
0
//****************显示flash图片(VS32240M35一个FLASH可以存储107幅图片,可以增加一个FLASH,即214幅图片)
void displaypicture(unsigned char picnum)
{  
   unsigned int picnumtemp;
   Write_Dir(0X06,0X00);//FLASH频率设定
   if(picnum<61)
   {
   Write_Dir(0X05,0X07);//FLASH设置   ac cs1,2c cs0
    Write_Dir(0Xc7,0X01);
picnumtemp=picnum;
   }
   if(picnum>60&picnum<121)
   {
   Write_Dir(0X05,0X87); //ac
    Write_Dir(0Xc7,0X00);
picnumtemp=picnum-60;
   }
   Write_Dir(0XBF,0X02);//FLASH设置
   Active_Window(0,479,0,271); 
   //Write_Dir(0x41,(1-g_u8LcdLayer));
   MemoryWrite_Position(0,0);//内存写入位置
   DMA_Start_address_setting(262144*(picnumtemp-1));
   DMA_block_mode_size_setting(480,272,480);   
   Write_Dir(0XBF,0X03);//FLASH设置
Chk_DMA_Busy();
}  
示例#8
0
//****************输入字符
void String(unsigned char *str)
{   
    Write_Dir(0x40,0x80);//设置字符模式
	Write_Command(0x02);
	while(*str != '\0')
	{
	 Write_Data(*str);
	 ++str;	 	
	 Chk_Busy();		
	} 
}
示例#9
0
//////////////writing text
void String(uchar *str)
{
    Write_Dir(0x40,0x80);//Set the character mode
	LCD_CmdWrite(0x02);
	while(*str != '\0')
	{
	 LCD_DataWrite(*str);
	 ++str;
	 Chk_Busy();
	}
}
示例#10
0
void DisplayImageDirectWrite(const uint8_t* array,uint length, uint startx , uint starty, uint width, uint height)
{
	int i;

	Write_Dir(0x40,0x00);
	Active_Window(startx,startx + width-1,starty,starty+height-1);//Set the work window size
	MemoryWrite_Position(0,0);//Memory write position
	LCD_CmdWrite(0x02);//start data write
	//112X140 dot
	for(i=0;i<length;i++)
	{
		LCD_DataWrite(array[i]);
		Chk_Busy();
	}
}
示例#11
0
void WriteString1(unsigned char *Str,u16 x, u16 y, u16 Color, u8 Size, u8 transperent )
{
    Size = Size<<6;
    Write_Dir(0x21,0x20);//??????
    Write_Dir(0x06,0x03);//??FLASH??
    Write_Dir(0x2F,0x81);//????IC
    Write_Dir(0x05,0xA8);//????IC
    Write_Dir(0x22,0x80|(transperent<<6));//????IC
    Write_Dir(0x2E,Size);//??????16x16/??1
    
    Text_Foreground_Color1(Color);//??????

    FontWrite_Position(x,y);//??????
    String(Str);

    Write_Dir(0x21,0x00);//?????
    Write_Dir(0x2F,0x00);//?????
}
示例#12
0
void WriteString(unsigned char *Str,u16 x, u16 y, u16 Color, u8 Size, u8 transperent )
{
    RXLCD_EditCurrent();
    Active_Window(0,479,0,271);

    Size = Size<<6;
    Write_Dir(0x21,0x20);//??????
    Write_Dir(0x06,0x03);//??FLASH??
    Write_Dir(0x2F,0x81);//????IC
    Write_Dir(0x05,0xA8);//????IC
    Write_Dir(0x22,0x80|(transperent<<6));//????IC
    Write_Dir(0x2E,Size);//??????16x16/??1
    
    Text_Foreground_Color1(Color);//??????

    FontWrite_Position(x,y);//??????
    String(Str);

    Write_Dir(0x21,0x00);//?????
    Write_Dir(0x2F,0x00);//?????
}
示例#13
0
void RXLCD_EditCurrent(void)
{
    Write_Dir(0x41,g_u8LcdLayer);
}
示例#14
0
void RXLCD_EditNext(void)
{
    Write_Dir(0x41,(1-g_u8LcdLayer));
}
示例#15
0
//-----模块初始化代码----------建议客户直接移植---------------------------//
void RXLCD_init(void)
{ 	
    Reset();
    Delay10ms(5);
    RA8870_PLL_ini();

    Write_Command(0x10);	 //SYSR   bit[4:3]=00 256 color  bit[2:1]=  00 8bit MPU interface
    Write_Data(0x0f);   //                 1x 64k color             1x	16bit 						 

    Write_Command(0x04);    //PCLK
    Write_Data(0x03);   //
    Delay10ms(1);

    //Horizontal set
    Write_Command(0x14);	 //HDWR//Horizontal Display Width Setting Bit[6:0]  
    Write_Data(0x3b); //Horizontal display width(pixels) = (HDWR + 1)*8       0x27
    Write_Command(0x15);	 //HNDFCR//Horizontal Non-Display Period fine tune Bit[3:0] 
    Write_Data(0x02); //(HNDR + 1)*8 +HNDFCR
    Write_Command(0x16);	 //HNDR//Horizontal Non-Display Period Bit[4:0] 
    Write_Data(0x03); //Horizontal Non-Display Period (pixels) = (HNDR + 1)*8 
    Write_Command(0x17);	 //HSTR//HSYNC Start Position[4:0] 
    Write_Data(0x01); //HSYNC Start Position(PCLK) = (HSTR + 1)*8 
    Write_Command(0x18);	 //HPWR//HSYNC Polarity ,The period width of HSYNC. 
    Write_Data(0x03); //HSYNC Width [4:0]   HSYNC Pulse width(PCLK) = (HPWR + 1)*8 

    //Vertical set
    Write_Command(0x19); //VDHR0 //Vertical Display Height Bit [7:0] 
    Write_Data(0x0f); //Vertical pixels = VDHR + 1	0xef
    Write_Command(0x1a); //VDHR1 //Vertical Display Height Bit [8] 
    Write_Data(0x01); //Vertical pixels = VDHR + 1 	0x00
    Write_Command(0x1b); //VNDR0 //Vertical Non-Display Period Bit [7:0]
    Write_Data(0x0f); //Vertical Non-Display area = (VNDR + 1) 
    Write_Command(0x1c); //VNDR1 //Vertical Non-Display Period Bit [8] 
    Write_Data(0x00); //Vertical Non-Display area = (VNDR + 1) 
    Write_Command(0x1d); //VSTR0 //VSYNC Start Position[7:0]
    Write_Data(0x0e); //VSYNC Start Position(PCLK) = (VSTR + 1) 
    Write_Command(0x1e); //VSTR1 //VSYNC Start Position[8] 
    Write_Data(0x06); //VSYNC Start Position(PCLK) = (VSTR + 1) 
    Write_Command(0x1f);	 //VPWR //VSYNC Polarity ,VSYNC Pulse Width[6:0]
    Write_Data(0x01); //VSYNC Pulse Width(PCLK) = (VPWR + 1) 

    Write_Command(0x20);	 
    Write_Data(0x80); 
    Write_Dir(0x52,0xc1);//设置为缓冲卷动模式
    Write_Dir(0x40,0x80);//设置为文字模式
    Write_Dir(0x41,0x01);
Layer1_Visible();
    Write_Dir(0xf0,0x04);//开启中断
    Write_Dir(0x71,0x04);//设置为4线触摸屏
    Write_Dir(0x70,0xB2);//开启触摸功能,设置触摸参数
    Write_Dir(0xf1,0x04);//clear INT state 確保上次觸碰後 TP_interrupt 清除

    
    Write_Command(0x8c);//PWM控制设置
    Write_Data(0x80);//开启PWM
    Write_Command(0x8c);//PWM控制设置
    Write_Data(0x81);//开启PWM
    Write_Command(0x8d);//背光亮度
    Write_Data(0x80);//亮度参数0xff-0x00

    Active_Window(0,479,0,271);//设置区域显示窗口
    Text_Foreground_Color1(0x0000);//前景颜色设定
    Text_Background_Color1(0xffff);//背景颜色设定
    Write_Dir(0X8E,0X80);//开始清屏(显示窗口)
    Delay10ms(1); 

    Write_Dir(0X01,0X80);//开启显示
    
}