📄 print_method.c
字号:
#define LCD_LCCR0 (*(volatile unsigned long *)(0x44000000))
#define LCD_FDADR0 (*(volatile unsigned long *)(0x44000200))
#define LCD_FSADR0 (*(volatile unsigned long *)(0xa0300004))
#define LCD_LCSR (*(volatile unsigned long *)(0x44000038))
#define LCD_LIGHT (*(volatile unsigned long *)(0xa000000))
#define LIGHT1 (1<<12)
#define LIGHT2 (1<<13)
#define BACKLIGHT (1<<8)
extern void udelay(int multi);
extern char word_1[32][4] ;
extern char word_2[32][4] ;
extern char word_3[32][4] ;
extern char word_4[32][4] ;
extern char word_5[32][4] ;
extern char word_6[32][4] ;
extern char word_7[32][4] ;
extern void print_3232(char *,int, int);
void lighton1(void)
{
LCD_LIGHT=(~LIGHT1)|BACKLIGHT;
}
void lighton2(void)
{
LCD_LIGHT=(~LIGHT2)|BACKLIGHT;
}
void lightoff1(void)
{
LCD_LIGHT=LIGHT1|BACKLIGHT;
}
void lightoff2(void)
{
LCD_LIGHT=LIGHT2|BACKLIGHT;
}
void typename(void)
{
print_3232(word_1[0],200,200);
print_3232(word_2[0],250,200);
print_3232(word_3[0],300,200);
print_3232(word_4[0],350,200);
print_3232(word_5[0],400,200);
print_3232(word_6[0],450,200);
}
void screen_clean(long int color)
{
long int i,fill_color ;
i = 0x96000/4;
fill_color =color;
for(;i>0;i--)
(*(volatile unsigned long int *)(0xa0500000 + i*4)) = fill_color;
}
void disable_lcd(void)
{
LCD_LCCR0 = LCD_LCCR0 | 0x0400;
}
void enable_lcd(void)
{
LCD_FDADR0 = 0xa0300000;
LCD_FSADR0 = 0xa0500000;
LCD_LCSR = 0;
LCD_LCCR0 = 0x3b008f8;
udelay(1);
LCD_LCCR0 = LCD_LCCR0 | 0x01;
}
void print_3232(char * word,int pixel_x,int pixel_y)
{
char bit_long = 8;
char num_in_line = 4;
char line = 32;
char i=0,j=0,k=0;
char value=0;
for(k=0;k<line;k++)
{
for(j=0;j<num_in_line;j++)
{
value = (word+k*num_in_line)[j];
for(i=0; i<bit_long; i++)
{
if (value & 0x80)
(*((volatile unsigned int *)(0xa0500000+pixel_y*1280+pixel_x*2 + k*1280+j*16+i*2))) = 0x8888;
value = value << 1;
}
}
}
}
void print_0808(char * word,int pixel_x,int pixel_y)
{
char bit_long = 8;
char num_in_line = 1;
char line = 8;
char i=0,j=0,k=0;
char value=0;
for(k=0;k<line;k++)
{
for(j=0;j<num_in_line;j++)
{
value = (word+k*num_in_line)[j];
for(i=0; i<bit_long; i++)
{
if (value & 0x80)
(*((volatile unsigned int *)(0xa0500000+pixel_y*1280+pixel_x*2 + k*1280+j*16+i*2))) = 0x8888;
value = value << 1;
}
}
}
}
void print_0813(char * word,int pixel_x,int pixel_y)
{
char bit_long = 8;
char num_in_line = 1;
char line = 13;
char i=0,j=0,k=0;
char value=0;
for(k=0;k<line;k++)
{
for(j=0;j<num_in_line;j++)
{
value = (word+k*num_in_line)[j];
for(i=0; i<bit_long; i++)
{
if (value & 0x80)
(*((volatile unsigned int *)(0xa0500000+pixel_y*1280+pixel_x*2 + k*1280+j*16+i*2))) = 0x8888;
value = value << 1;
}
}
}
}
/* 16*12 */
void print_song2312(char * word,int pixel_x,int pixel_y)
{
char bit_long = 8;
char num_in_line = 2;
char line = 12;
char i=0,j=0,k=0;
char value=0;
long int base_addr;
base_addr = 0xa0500000;
for(k=0;k<line;k++)
{
for(j=0;j<num_in_line;j++)
{
value = (word+k*num_in_line)[j];
for(i=0; i<bit_long; i++)
{
if (value & 0x80)
(*((volatile unsigned int *)(base_addr+pixel_y*1280+pixel_x*2 + k*1280+j*16+i*2))) = 0xdddd;
value = value << 1;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -