Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

48x96 English font modulo description: Difference between revisions

From LCD wiki
Lin (talk | contribs)
Created page with "*'''48x96 English font modulo description''' :The size settings are as shown below: :750px :The modulo data is as follows (click to open): ::[http://ww..."
 
Lin (talk | contribs)
No edit summary
 
(One intermediate revision by the same user not shown)
Line 3: Line 3:
:[[File:Module-023.png|750px]]
:[[File:Module-023.png|750px]]
:The modulo data is as follows (click to open):
:The modulo data is as follows (click to open):
::[https://www.lcdwiki.com/res/PublicFile/24x48_ASCII_data.txt '''24x48 English ASCII modulo data''']
::[https://www.lcdwiki.com/res/PublicFile/48x96_ASCII_data.txt '''48x96 English ASCII modulo data''']
:The function is defined as follows:
:The function is defined as follows:
{{code|1=
{{code|1=
void LCD_Show_4824_char(u16 x,u16 y,u16 fc, u16 bc, u8 num,u8 mode)
void LCD_Show_9648_char(u16 x,u16 y,u16 fc, u16 bc, u8 num,u8 mode)
{
{
     u32 temp;
     u32 temp;
     u8 pos,t;
     u8 pos,t,i;
     u16 colortemp=POINT_COLOR;         
     u16 colortemp=POINT_COLOR;         
     num=num-' ';//Get the offset value
     num=num-' ';//Get the offset value
     LCD_SetWindows(x,y,x+24-1,y+48-1);//Set a single text display window
     LCD_SetWindows(x,y,x+48-1,y+96-1);//Set a single text display window
     if(!mode) //Non-overlay mode: The font has a background color, which will overwrite the original display
     if(!mode) //Non-overlay mode: The font has a background color, which will overwrite the original display
     {
     {
for(pos=0;pos<48;pos++)
for(pos=0;pos<96;pos++)
{
{
    temp = (asc2_4824[num][pos*3]<<16)<nowiki>|</nowiki>(asc2_4824[num][pos*3+1]<<8)<nowiki>|</nowiki>asc2_4824[num][pos*3+2];//Call 4824 font, you need to take the model definition
    for(i=0;i<2;i++)
    for(t=0;t<24;t++)
    {
    {                 
temp = (asc2_9648[num][pos*6+i*3]<<16)<nowiki>|</nowiki>(asc2_9648[num][pos*6+i*3+1]<<8)<nowiki>|</nowiki>asc2_9648[num][pos*6+i*3+2];//Call 9648 font, you need to take the model definition
if(temp&0x800000)
        for(t=0;t<24;t++)
{
        {                 
    Lcd_WriteData_16Bit(fc);
  if(temp&0x800000)
}
  {
else  
      Lcd_WriteData_16Bit(fc);
{
  }
    Lcd_WriteData_16Bit(bc);  
  else  
}
  {
temp<<=1;
      Lcd_WriteData_16Bit(bc);  
    }
  }
  temp<<=1;
}
        }
    }
}
     }
     }
     else//Overlay mode: the font does not have a background color, and is directly superimposed and displayed on the original display content
     else//Overlay mode: the font does not have a background color, and is directly superimposed and displayed on the original display content
     {
     {
         for(pos=0;pos<48;pos++)
         for(pos=0;pos<96;pos++)
{
{
    temp = (asc2_4824[num][pos*3]<<16)<nowiki>|</nowiki>(asc2_4824[num][pos*3+1]<<8)<nowiki>|</nowiki>asc2_4824[num][pos*3+2];//Call 4824 font, you need to take the model definition
    for(i=0;i<2;i++)
    for(t=0;t<24;t++)
    {
    {   
        temp = (asc2_9648[num][pos*6+i*3]<<16)<nowiki>|</nowiki>(asc2_9648[num][pos*6+i*3+1]<<8)<nowiki>|</nowiki>asc2_9648[num][pos*6+i*3+2];//Call 9648 font, you need to take the model definition
POINT_COLOR=fc;               
        for(t=0;t<24;t++)
if(temp&(0x800000))
        {   
{
    POINT_COLOR=fc;               
    LCD_DrawPoint(x+t,y+pos);//Draw a point     
    if(temp&0x800000)
}
    {
temp<<=1;
        LCD_DrawPoint(x+i*24+t,y+pos);//Draw a point     
    }
    temp<<=1;
        }
    }
    }
}
}
     }
     }
     POINT_COLOR=colortemp;
     POINT_COLOR=colortemp;
     LCD_SetWindows(0,0,lcddev.width-1,lcddev.height-1);//Restore window to full screen
     LCD_SetWindows(0,0,lcddev.width-1,lcddev.height-1);//Restore window to full screen
<nowiki>}</nowiki>    
<nowiki>}</nowiki>  
}}
}}

Latest revision as of 13:58, 12 June 2023

  • 48x96 English font modulo description
The size settings are as shown below:
The modulo data is as follows (click to open):
48x96 English ASCII modulo data
The function is defined as follows:
void LCD_Show_9648_char(u16 x,u16 y,u16 fc, u16 bc, u8 num,u8 mode)
{
    u32 temp;
    u8 pos,t,i;
    u16 colortemp=POINT_COLOR;      		   
    num=num-' ';//Get the offset value
    LCD_SetWindows(x,y,x+48-1,y+96-1);//Set a single text display window
    if(!mode) //Non-overlay mode: The font has a background color, which will overwrite the original display
    {		
	for(pos=0;pos<96;pos++)
	{
	     for(i=0;i<2;i++)
	     {
		 temp = (asc2_9648[num][pos*6+i*3]<<16)|(asc2_9648[num][pos*6+i*3+1]<<8)|asc2_9648[num][pos*6+i*3+2];//Call 9648 font, you need to take the model definition
	        for(t=0;t<24;t++)
	        {                 
		   if(temp&0x800000)
		   {
		      Lcd_WriteData_16Bit(fc);
		   }
		   else 
		   {
		      Lcd_WriteData_16Bit(bc); 
		   }
		   temp<<=1;
	        }	
	    }	
	}
    }
    else//Overlay mode: the font does not have a background color, and is directly superimposed and displayed on the original display content
    {
        for(pos=0;pos<96;pos++)
	{
	    for(i=0;i<2;i++)
	    {
	        temp = (asc2_9648[num][pos*6+i*3]<<16)|(asc2_9648[num][pos*6+i*3+1]<<8)|asc2_9648[num][pos*6+i*3+2];//Call 9648 font, you need to take the model definition
	        for(t=0;t<24;t++)
	        {   
		    POINT_COLOR=fc;              
		    if(temp&0x800000)
		    {
		        LCD_DrawPoint(x+i*24+t,y+pos);//Draw a point    
		    }
		    temp<<=1;
	        }
	    }
	}
    }
    POINT_COLOR=colortemp;	
    LCD_SetWindows(0,0,lcddev.width-1,lcddev.height-1);//Restore window to full screen
}