www.pudn.com > ARM9_PROGRAM.rar > display.c
extern long int LCDRSH1;
extern long int LCDRSH2;
extern long int LCDRSL1;
extern long int LCDRSL2;
extern unsigned char Data_buffer[0x200];
extern unsigned int LCD_x_size,LCD_y_size;
extern unsigned char LCD_code,LCD_data_mode,LCD_dots,BMP_start_block,BMP_block_number;
extern volatile unsigned char Menu_status,Menu_status_1,Menu_status_2;
extern volatile char Cycle_pause ;
extern unsigned char Bl_brightness ;
extern unsigned char Shift ;
unsigned long int Image_addr;
extern unsigned short int Image_data[0x80000];
extern unsigned long int searchfile(unsigned char c[4],unsigned char m[4],unsigned char n);
extern unsigned long int RootDirAddr;
extern unsigned long int Data_start_Addr;
extern unsigned RootDirNum;
extern unsigned int RsvdSec;
extern unsigned char SecPerClus;
unsigned long int Ascii[200]=
{
0x00000000, 0x00000000,
0x04040404 , 0x00000400,
0x0A0A0A0A, 0x00000000,
0x0A0A1F0A, 0x1F0A0A00,
0x040F140E, 0x051E0400,
0x18190204, 0x08130300,
0x0C121408, 0x15120D00,
0x0C040800, 0x00000000,
0x02040808, 0x08040200,
0x08040202, 0x02040800,
0x0004150E, 0x15040000,
0x0004041F, 0x04040000,
0x00000000, 0x0C040800,
0x0000001F, 0x00000000,
0x00000000, 0x000C0C00,
0x00010204, 0x08100000,
0x0E111315, 0x19110E00,
0x040C0404, 0x04040E00,
0x0E110102, 0x04081F00,
0x1F020402, 0x01110E00,
0x02060A12, 0x1F020200,
0x1F101E01, 0x01110E00,
0x0608101E, 0x11110E00,
0x1F010204, 0x04040400,
0x0E11110E, 0x11110E00,
0x0E11110E, 0x01020C00,
0x000C0C00, 0x0C0C0000,
0x000C0C00, 0x0C040800,
0x02040810, 0x08040200,
0x00001F00, 0x1F000000,
0x08040201, 0x02040800,
0x0E110102, 0x04000400,
0x0E11010D, 0x15150E00,
0x0E111111, 0x1F111100,
0x1E09090E, 0x09091E00,
0x0E111010, 0x10000E00,
0x1E090909, 0x09091E00,
0x1F10101F, 0x10101F00,
0x1F10101E, 0x10101000,
0x0E111013, 0x11110F00,
0x1111111F, 0x11111100,
0x0E040404, 0x04040E00,
0x07020202, 0x02120C00,
0x11121418, 0x14121100,
0x10101010, 0x10101F00,
0x111B1511, 0x11111100,
0x11191915, 0x13131100,
0x0E111111, 0x11110E00,
0x1E11111E, 0x10101000,
0x0E111111, 0x15120B00,
0x1E11111E, 0x14121100,
0x0E11100E, 0x01110E00,
0x1F040404, 0x04040400,
0x11111111, 0x11110E00,
0x11111111, 0x110A0400,
0x11111115, 0x151B1100,
0x11110A04, 0x0A111100,
0x1111110A, 0x04040400,
0x1F010204, 0x08101F00,
0x0E080808, 0x08080E00,
0x00100804, 0x02010000,
0x0E020202, 0x02020E00,
0x040A1100, 0x00000000,
0x00000000, 0x00001F00,
0x10080400, 0x00000000,
0x00000E01, 0x0F110F00,
0x10101619, 0x11111E00,
0x00000E11, 0x10110E00,
0x01010D13, 0x11110F00,
0x00000E11, 0x1F100E00,
0x0205040E, 0x04040400,
0x000D1313, 0x0D010E00,
0x10101619, 0x11111100,
0x04000C04, 0x04040E00,
0x02000602, 0x02120C00,
0x0808090A, 0x0C0A0900,
0x0C040404, 0x04040E00,
0x00001A15, 0x15151500,
0x00001619, 0x11111100,
0x00000E11, 0x11110E00,
0x00161919, 0x16101000,
0x000D1313, 0x0D010100,
0x00001619, 0x10101000,
0x00000F10, 0x1E011F00,
0x08081C08, 0x08090600,
0x00001212, 0x12120D00,
0x00001111, 0x110A0400,
0x00001111, 0x15150A00,
0x0000110A, 0x040A1100,
0x00001111, 0x130D010E,
0x00001F02, 0x04081F00,
0x02040408, 0x04040200,
0x02020200, 0x02020200,
0x08040402, 0x04040800,
0x08150200, 0x00000000,
0x1F1F1F1F, 0x1F1F1F1F
};
extern unsigned char Data_buffer[0x200];
extern void Delay100ns(long int dly);
extern void Delayms(long int dly);
extern void Flash_page_read(unsigned long int flash_page_addr);
extern void Trans_window_data_to_LCD(unsigned int window_start_x,unsigned int window_start_y,unsigned int image_width,unsigned int image_highth);
extern void BMP_data_from_flash(unsigned long int data_addr,unsigned long int flash_block_addr);
extern void Logo_data_from_flash(unsigned long int data_addr,unsigned long int flash_block_addr);
void Screen_clear()
{
int i,j;
long int addr=0;
for(i=0;i=target_x_size) {addr1=addr1+(souce_x_size-target_x_size)/2; mini_x=target_x_size;}
else {addr0=addr0+centre_x-(souce_x_size/2);mini_x=souce_x_size;}
if (souce_y_size>=target_y_size) {addr1=addr1+(((souce_y_size-target_y_size)/2)*souce_x_size);mini_y=target_y_size;}
else {addr0=addr0+(centre_y-(souce_y_size/2))*LCD_x_size;mini_y=souce_y_size;}
for (y=0;y9) hex=hex-10;
Display_char(hex+0x30, window_start_x,window_start_y,color, times_x, times_y);
}
void Display_hex(unsigned char hex,unsigned int window_start_x,unsigned int window_start_y,unsigned short int color,char times_x,char times_y)
{
hex=hex&0xFF;
if(((hex&0xF0)>>4)<10) Display_char(((hex&0xF0)>>4)+0x30, window_start_x,window_start_y,color, times_x, times_y);
else Display_char(((hex&0xF0)>>4)+0x37, window_start_x,window_start_y,color, times_x, times_y);
if((hex&0x0F)<10) Display_char((hex&0x0F)+0x30, window_start_x+(times_x*6),window_start_y,color, times_x, times_y);
else Display_char((hex&0x0F)+0x37, window_start_x+(times_x*6),window_start_y,color, times_x, times_y);
}
void Display_block(unsigned int window_start_x,unsigned int window_start_y,unsigned int block_size_x,unsigned int block_size_y,unsigned short int color)
{
unsigned short int i,j;
unsigned long int addr0;
for (j=0;j0;h--)
{
page_addr=RootDirAddr;
for(k=0;k