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