⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menu.c

📁 一款车载DVD的车机源程序(正在生成中的哦)
💻 C
📖 第 1 页 / 共 5 页
字号:
static unsigned char OSD_transmission_buff[7*36]= {0};
#endif
unsigned char Picture_cnt=0;
//***********************************************************************************

void Download_OSD_Library_Display_Menu(void);
#ifdef Download_outside_eeprom
void Doawload_all_library_to_outside_eeprom(void);
#endif
#ifndef Outside_eeprom
static void Read_mcu_rom_library_transmission_data_to_OSD_library(void);
#endif
#ifdef Outside_eeprom
static void Read_outside_eeprom_library_transmission_data_to_OSD_library(void);
#endif

void Display_one_mode_all_osd_item(void);

void Display_Jump_back_picture(void);
void Display_Jump_front_picture(void);
void Display_Slow_back_picture(void);
void Display_Fast_front_picture(void);
void Display_Scan_picture(void);
 void Display_8pcs_Mute_picture(void);
void Display_4pcs_DEC_picture(void);
void Display_4pcs_Adding_picture(void);
void Display_volume_picture(unsigned char Volume);
void Display_Total_Volume_picture(void);
void Display_Total_Volume_data(void);
void Display_volume_data(unsigned char Volume);
void Display_8pcs_main_menu_picture(void);
void Display_8pcs_exitting_picture(void);
void Display_4pcs_Main_menu_picture(void);
void Display_4pcs_exitting_picture(void);
void Display_stop_picture(void);
void Display_play_pause_picture(void);
void Display_time_picture(void);

void Download_OSD_Library_Display_Menu(void)
{
	unsigned char i;
	if(System_mode == BACK_CAR_mode)
		{
		OSDDisable();
		return;
		}
	
	OSDCfgWr(OSD_CTRL,0x18);           //disable osd and width*1

	OSDSetRamAddr(FONT_DATA_START_ADDRESS);
	OSDCfgWr(CHAR_FONT_SIZE,FONT_SIZE);
	OSDCfgWr(CHAR_RAM_BASE_A,CHAR_MAIN_MENU_START);    //To setup character index start address.
                                                    //If start address is 0x9c0,
                                                    //You have get ((0x9c0 >> 5) & 0x7f) to store it
	OSDCfgWr(CHAR_RAM_END_A,CHAR_RAM_END);           //This is to set index end address.

  	OSDCfgWr(CHAR_BS_CTRL,0x40);
	OSDCfgWr(CHAR_BS_COLOR,0x00);
  	OSDCfgWr(CHAR_HEIGHT_CTRL,0x20);
	//OSDCfgWr(CHAR_HEIGHT_CTRL,0x40);  //For malata only
  	OSDCfgWr(BLINK_CTRL,0x01);
  	 //OSDCfgWr(ALPHA_BLD_CTRL,0x80);          /* Alpha blending is disable */
    	OSDCfgWr(ALPHA_BLD_CTRL,0x87);       //0x86   // Alpha blending is disable; for malata only

	//OSDLoadColor();		//tomi 2006 03 01 delete
	
	//OSDSetRamAddr(FONT_DATA_START_ADDRESS)

	twdWr_Burst_A(OSD_RAM_DL);
	//Below is re-writted
	#ifndef Outside_eeprom	//Use the mcu's rom to keep the data
	Read_mcu_rom_library_transmission_data_to_OSD_library();	//Why must setup one program to do this?Beause the short ram(128pcs) not enough to use,so you must setup one new program!
	#else		//The library's data are from outside eeprom
	Read_outside_eeprom_library_transmission_data_to_OSD_library();	//Why must setup one program to do this?Beause the short ram(128pcs) not enough to use,so you must setup one new program!
	#endif
	twdWr_Burst_P();
   		
	Clear_osd();
	OSDPosition(1);
	OSDDisable();
	//OSDEnable();
	Display_one_mode_all_osd_item();
}
//*********************************************************************************************************************************************************************
#ifdef Download_outside_eeprom
void Doawload_all_library_to_outside_eeprom(void)
{	
	unsigned char i;
	unsigned char Library_number;
	unsigned int **Libaray_name;
	unsigned int *Front_name;
	unsigned char Front_cnt = 0;	//IF full 7pcs then must ust the next page
	unsigned int Page_cnt = 0;	//Total 2048pcs page
	unsigned Start_address = 0;
	Chinese_english_system == Chinese_system
	System_mode = Main_menu_mode;
	while(System_mode != GPS_mode)	//Finish in Bell setting mode
		{
		Library_number = Total_menu_libary_number_list[System_mode];
		Libaray_name = Chinese_total_menu_library_list[System_mode];
		for(i=0;i<Library_number;i++)
			{
			Front_name = *(Libaray_name +i);
			AT45DB041B_BufferToMainMemoryPageProgramWithBuilt_inErase(1,(Page_cnt+Chinese_outside_eeprom_every_library_start_page_list[System_mode]),Start_address,Front_name,36);
			if(++Front_cnt >= 7)
				{
				Front_cnt = 0;
				Page_cnt++;
				}
			Start_address = Front_cnt * 36;
			WAIT_3ms();
			}
		Page_cnt = 0;
		Start_address = 0;
		Front_cnt = 0;
		System_mode++;
		}

	Front_cnt = 0;	//IF full 7pcs then must ust the next page
	Page_cnt = 0;	//Total 2048pcs page
	Start_address = 0;
	System_mode = Main_menu_mode;
	Chinese_english_system == English_system;
	while(System_mode != GPS_mode)	//Finish in Bell setting mode
		{
		Library_number = Total_menu_libary_number_list[System_mode];
		Libaray_name = English_total_menu_library_list[System_mode];
		for(i=0;i<Library_number;i++)
			{
			Front_name = *(Libaray_name +i);
			AT45DB041B_BufferToMainMemoryPageProgramWithBuilt_inErase(1,(Page_cnt+Chinese_outside_eeprom_every_library_start_page_list[System_mode]),Start_address,Front_name,36);
			if(++Front_cnt >= 7)
				{
				Front_cnt = 0;
				Page_cnt++;
				}
			Start_address = Front_cnt * 36;
			WAIT_3ms();
			}
		Page_cnt = 0;
		Start_address = 0;
		Front_cnt = 0;
		System_mode++;
		}
}
#endif


#ifndef Outside_eeprom
static void Read_mcu_rom_library_transmission_data_to_OSD_library(void)
{
	#ifndef Download_outside_eeprom
	unsigned char i;
	unsigned char j;
	unsigned char Library_number;
	unsigned int **Libaray_name;
	unsigned int *Front_name;
	unsigned int Front_data;
	unsigned char High_byte;
	unsigned char Low_byte;

	Library_number = Total_menu_libary_number_list[System_mode];
	Libaray_name = Chinese_total_menu_library_list[System_mode];
	for(i=0;i<Library_number;i++)
		{
		Front_name = *(Libaray_name +i);
		for(j=0;j<36/2;j++)
			{
			Front_data = *(Front_name+j);
			High_byte = HIBYTE(Front_data);
			Low_byte = LOBYTE(Front_data);
			twdWr_Burst_D(High_byte);
			twdWr_Burst_D(Low_byte);
			}
		}
	#endif
}
#endif

#ifdef Outside_eeprom
static void Read_outside_eeprom_library_transmission_data_to_OSD_library(void)
{
	unsigned char i;
	unsigned char j;
	unsigned char Library_number;
	unsigned char Temp_front_data[36];
	unsigned char Front_cnt = 0;
	unsigned char Page_cnt = 0;
	unsigned char Start_address = 0;
	unsigned int Page_number=0;

	if(Chinese_english_system == Chinese_system)
		Page_number = Chinese_outside_eeprom_every_library_start_page_list[System_mode+1] -Chinese_outside_eeprom_every_library_start_page_list[System_mode];
	else 
		Page_number = English_outside_eeprom_every_library_start_page_list[System_mode+1] -English_outside_eeprom_every_library_start_page_list[System_mode];
	for(i=0;i<Page_number;i++)
		{
		if(Chinese_english_system == Chinese_system)
			AT45DB041B_ContinuousArrayRead(Page_cnt+Chinese_outside_eeprom_every_library_start_page_list[System_mode],0,OSD_transmission_buff,7*36);
		else
			AT45DB041B_ContinuousArrayRead(Page_cnt+English_outside_eeprom_every_library_start_page_list[System_mode],0,OSD_transmission_buff,7*36);
		Page_cnt++;
		for(j=0;j<7*36;j++)
			{
			twdWr_Burst_D(OSD_transmission_buff[j]);
			}
		}
	#if 0
	Library_number = Total_menu_libary_number_list[System_mode];
	for(i=0;i<Library_number;i++)
		{
		AT45DB041B_ContinuousArrayRead(Page_cnt+Outside_eeprom_every_library_start_page_list[System_mode],Start_address,Temp_front_data,36);
		if(++Front_cnt >= 7)
			{
			Page_cnt++;
			Front_cnt = 0;
			}
		Start_address = Front_cnt * 36;
		for(j=0;j<36;j++)
			{
			twdWr_Burst_D(Temp_front_data[j]);
			}
		}
	#endif
}
#endif


void Display_one_mode_all_osd_item(void)
{
	Picture_cnt = 0;
	while( ((MENU_LIST *)Total_menu_list[System_mode])[Picture_cnt].item)
		{
		UICCFuncPtr=((MENU_LIST *)Total_menu_list[System_mode])[Picture_cnt].DisplayPicture;
		Head_colume =((MENU_LIST *)Total_menu_list[System_mode])[Picture_cnt].Pos_color.x;
		Head_row = ((MENU_LIST *)Total_menu_list[System_mode])[Picture_cnt].Pos_color.y;
		if(Picture_cnt == (Select_item -DEFAULT_MENU_ITEM))
			cColor = Select_osd_item_color;
		else
			cColor = ((MENU_LIST *)Total_menu_list[System_mode])[Picture_cnt].Pos_color.color;
		(*UICCFuncPtr) ();
		Picture_cnt++;
		}

	OSDEnable();
	SetBit(System_flag1,OSD_on_flag);
	Clear_OSD_delay = 500;
}

//Function:Display the JUMP BACK picture
 void Display_Jump_back_picture(void)
{	
	OSDShowLine(Jump_back_picture_line_0,Head_colume,Head_row,cColor,29);
	OSDShowLine(Jump_back_picture_line_1,Head_colume,Head_row+1,cColor,29);
}
//Function:Display the Jump front picture
 void Display_Jump_front_picture(void)
{
	OSDShowLine(Jump_front_picture_line_0,Head_colume,Head_row,cColor,29);
	OSDShowLine(Jump_front_picture_line_1,Head_colume,Head_row+1,cColor,29);
}
//Function:Display the SLOW BACK picture
 void Display_Slow_back_picture(void)
{
	OSDShowLine(Slow_back_picture_line_0,Head_colume,Head_row,cColor,29);
	OSDShowLine(Slow_back_picture_line_1,Head_colume,Head_row+1,cColor,29);
}
//Function:Display the Fast front picture
 void Display_Fast_front_picture(void)
{
	OSDShowLine(Fast_front_picture_line_0,Head_colume,Head_row,cColor,29);
	OSDShowLine(Fast_front_picture_line_1,Head_colume,Head_row+1,cColor,29);
}
//Function:Display the scan picture
 void Display_Scan_picture(void)
{
	OSDShowLine(Scan_picture_line_0,Head_colume,Head_row,cColor,29);
	OSDShowLine(Scan_picture_line_1,Head_colume,Head_row+1,cColor,29);
}

//Function:Display the mute picture
 void Display_8pcs_Mute_picture(void)
{
	asm	nop;
	OSDShowLine(Mute_picture_line_0,Head_colume,Head_row,cColor,29);
	asm	nop;
	OSDShowLine(Mute_picture_line_1,Head_colume,Head_row+1,cColor,29);
}
//Function:Display the DEC picture
 void Display_4pcs_DEC_picture(void)
{
	OSDShowLine(DEC_picture_line_0,Head_colume,Head_row,cColor,29);
	OSDShowLine(DEC_picture_line_1,Head_colume,Head_row+1,cColor,29);
}
//Function:Display the Adding picture
 void Display_4pcs_Adding_picture(void)
{
	OSDShowLine(Adding_picture_line_0,Head_colume,Head_row,cColor,29);
	OSDShowLine(Adding_picture_line_1,Head_colume,Head_row+1,cColor,29);
}
//Function:Display the 8pcs main menu picture
void Display_8pcs_main_menu_picture(void)
{
	OSDShowLine(Main_menu_8pcs_picture_line_0,Head_colume,Head_row,cColor,29);
	OSDShowLine(Main_menu_8pcs_picture_line_1,Head_colume,Head_row+1,cColor,29);
}
//Function:Display the 8pcs exitting picture
void Display_8pcs_exitting_picture(void)
{
	OSDShowLine(Exitting_8pcs_picture_line_0,Head_colume,Head_row,cColor,29);
	OSDShowLine(Exitting_8pcs_picture_line_1,Head_colume,Head_row+1,cColor,29);
}
//Function:Display the Main menu picture 
void Display_4pcs_Main_menu_picture(void)
{
	OSDShowLine(Main_menu_4pcs_picture_line,Head_colume,Head_row,cColor,29);
}
//Function:Display the small exitting picture
void Display_4pcs_exitting_picture(void)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -