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

📄 system_operation.c

📁 一款车载DVD的车机源程序(正在生成中的哦)
💻 C
📖 第 1 页 / 共 5 页
字号:
 /***************************************************************************
Project  :  Car two din dvd System
Compiler :  ST7 HiCross C (HiWARE)
Module   :  autos.c 
Version  :  V 1.0
Created  :  24 11, 2005
Author   :  tomi / SA
Description
         -  System operation's program all in here.  
Modified
		 - tomi
***************************************************************************/
#include "Inter.h"
#include "Libr.h"
#include "St72321.h"
#include "IOport.h"
#include "Sys_config.h"
#include "i2c_drv.h"
#include "System_operation.h"
#include "Clock.h"
#include "Menu.h"
#include "OSD.h"
#include "Csp.h"
#include "TW101reg.h"
#include "Video_switch.h"
#include "Radio_tuner.h"
#include "TV_tuner.h"
#include "Main_menu.h"
#include "Radio_menu.h"
#include "CDC_menu.h"
#include "DVD_menu.h"
#include "Setting_menu.h"
#include "Csp_menu.h"
#include "Video_menu.h"
#include "Time_menu.h"
#include "Touch.h"
#include "CDC.h"
#include "SPI.h"

void Remote_osd_key_process(void);
void Item_function_on_check_hight_default_light_item(void);
void High_light_current_function_item_picture(void);
void Default_light_current_function_item_picture(void);
void Find_out_item_Pos_Color_Dis_pointer(unsigned char Item);
void Set_Close_high_light_flag_set_time(unsigned char Light_time);
void Check_default_light_item(void);
void DVD_volume_up_key_process(void);
void DVD_volume_down_key_process(void);
void Send_jump_back_command_to_dvd_player(void);
void Send_jump_front_command_to_dvd_player(void);
void Send_slow_back_command_to_dvd_player(void);
void Send_fast_front_command_to_dvd_player(void);
void Send_play_pause_command_to_dvd_player(void);
void TV_volume_up_key_process(void);
void TV_volume_down_key_process(void);
void TV_up_stepsearch(void);
void TV_down_stepsearch(void);
void TV_channel_up_process(void);
void TV_channel_down_process(void);

void Display_video_volume_data_state(void);
void Video_up_adjust_process(void);
void Video_down_adjust_process(void);

void Display_csp_volume_data_state(void);
void Csp_up_adjust_process(void);
void Csp_down_adjust_process(void);

void Display_clock_state(void);
void Clock_Adjust_up_process(void);
void Clock_Adjust_down_process(void);

void Radio_volume_up_key_process(void);
void Radio_volume_down_key_process(void);

void AV_volume_up_key_process(void);
void AV_volume_down_key_process(void);

void CDC_volume_up_key_process(void);
void CDC_volume_down_key_process(void);
void Send_command_to_CDC(unsigned char CDC_command);
void Send_play_pause_command_to_CDC(void);
void Send_jump_back_command_to_CDC(void);
void Send_jump_front_command_to_CDC(void);

void Switch_time_on_off(void);

#pragma INTO_ROM
Function_list Main_menu_mode_function_list[] = 
{

	{0}
};

#pragma INTO_ROM
Function_list DVD_menu_mode_function_list[] = 
{
	{Key_vol_up,ITEM_DVD_ADDING,DVD_volume_up_key_process},
		
	{Key_vol_down,ITEM_DVD_DEC,DVD_volume_down_key_process},

	{Remote_adding,ITEM_DVD_ADDING,DVD_volume_up_key_process},
	
	{Remote_dec,ITEM_DVD_DEC,DVD_volume_down_key_process},	

	#ifdef No_touch_system
	{Key_mute,ITEM_DVD_MUTE,Mute_key_process},
	
	{Remote_mute,ITEM_DVD_MUTE,Mute_key_process},
	#else
	{Key_mute,ITEM_DVD_Eject,Mute_key_process},
	
	{Remote_mute,ITEM_DVD_Eject,Mute_key_process},
	#endif
	
	{Key_play_pause,ITEM_DVD_PLAY_PAUSE,Send_play_pause_command_to_dvd_player},
	
	{Remote_play_pause,ITEM_DVD_PLAY_PAUSE,Send_play_pause_command_to_dvd_player},
	
	{Key_jump_back,ITEM_DVD_JUMP_BACK,Send_jump_back_command_to_dvd_player},
	
	{Key_jump_front,ITEM_DVD_JUMP_FRONT,Send_jump_front_command_to_dvd_player},

	{Long_key_slow_back,ITEM_DVD_SLOW_BACK,Send_slow_back_command_to_dvd_player},
	
	{Long_key_fast_front,ITEM_DVD_FAST_FRONT,Send_fast_front_command_to_dvd_player},
	
	{Remote_time,ITEM_DVD_TIME,Switch_time_on_off},	

	{Key_time,ITEM_DVD_TIME,Switch_time_on_off},
		
	{Remote_jump_back,ITEM_DVD_JUMP_BACK,Send_jump_back_command_to_dvd_player},
	
	{Remote_jump_front,ITEM_DVD_JUMP_FRONT,Send_jump_front_command_to_dvd_player},
	
	{Long_Remote_slow_back,ITEM_DVD_SLOW_BACK,Send_slow_back_command_to_dvd_player},	
	
	{Long_Remote_fast_front,ITEM_DVD_FAST_FRONT,Send_fast_front_command_to_dvd_player},
	
	{0}
};

#pragma INTO_ROM
Function_list TV_menu_mode_function_list[] = 
{
	{Key_vol_up,ITEM_TV_ADDING,TV_volume_up_key_process},
		
	{Key_vol_down,ITEM_TV_DEC,TV_volume_down_key_process},

	{Remote_adding,ITEM_TV_ADDING,TV_volume_up_key_process},	
	
	{Remote_dec,ITEM_TV_DEC,TV_volume_down_key_process},
	
	{Key_mute,ITEM_TV_FORMAT,Mute_key_process},
	
	{Remote_mute,ITEM_TV_FORMAT,Mute_key_process},
	
	{Key_play_pause,ITEM_TV_SEARCH,TV_search_key_process},

	{Remote_play_pause,ITEM_TV_SEARCH,TV_search_key_process},

	{Remote_search,ITEM_TV_SEARCH,TV_search_key_process},

	{Key_jump_back,ITEM_TV_JUMP_BACK,TV_channel_down_process},	
	
	{Key_jump_front,ITEM_TV_JUMP_FRONT,TV_channel_up_process},

	{Remote_jump_back,ITEM_TV_JUMP_BACK,TV_channel_down_process},
	
	{Remote_jump_front,ITEM_TV_JUMP_FRONT,TV_channel_up_process},

	{Long_Remote_slow_back,ITEM_TV_SLOW_BACK,TV_down_stepsearch},
	
	{Long_Remote_fast_front,ITEM_TV_FAST_FRONT,TV_up_stepsearch},

	{Long_key_slow_back,ITEM_TV_SLOW_BACK,TV_down_stepsearch},
	
	{Long_key_fast_front,ITEM_TV_FAST_FRONT,TV_up_stepsearch},
	
	{Remote_time,ITEM_TV_TIME,Switch_time_on_off},	

	{Key_time,ITEM_TV_TIME,Switch_time_on_off},
			
	{0}
};

#pragma INTO_ROM
Function_list Radio_menu_mode_function_list[] = 
{
	{Key_vol_up,ITEM_RADIO_ADDING,Radio_volume_up_key_process},
		
	{Key_vol_down,ITEM_RADIO_DEC,Radio_volume_down_key_process},

	{Remote_adding,ITEM_RADIO_ADDING,Radio_volume_up_key_process},	
	
	{Remote_dec,ITEM_RADIO_DEC,Radio_volume_down_key_process},
	
	{Key_mute,ITEM_RADIO_MUTE,Mute_key_process},
	
	{Remote_mute,ITEM_RADIO_MUTE,Mute_key_process},
	
	{Key_play_pause,ITEM_RADIO_SEARCH,Radio_tuner_search_key_process},	

	{Remote_play_pause,ITEM_RADIO_SEARCH,Radio_tuner_search_key_process},

	{Remote_search,ITEM_RADIO_SEARCH,Radio_tuner_search_key_process},
	
	{Key_jump_back,ITEM_RADIO_JUMP_BACK,Radio_search_previous_process},	
	
	{Key_jump_front,ITEM_RADIO_JUMP_FRONT,Radio_search_next_process},

	{Remote_jump_back,ITEM_RADIO_JUMP_BACK,Radio_search_previous_process},
	
	{Remote_jump_front,ITEM_RADIO_JUMP_FRONT,Radio_search_next_process},

	{Long_Remote_slow_back,ITEM_RADIO_SLOW_BACK,Radio_tuner_down_step_search},
	
	{Long_Remote_fast_front,ITEM_RADIO_FAST_FRONT,Radio_tuner_up_step_search},

	{Long_key_slow_back,ITEM_RADIO_SLOW_BACK,Radio_tuner_down_step_search},
	
	{Long_key_fast_front,ITEM_RADIO_FAST_FRONT,Radio_tuner_up_step_search},
	
	{Remote_time,ITEM_RADIO_TIME,Switch_time_on_off},	

	{Key_time,ITEM_RADIO_TIME,Switch_time_on_off},
			
	{0}
};

#pragma INTO_ROM
Function_list AV_menu_mode_function_list[] = 
{
	{Key_vol_up,ITEM_AV_ADDING,AV_volume_up_key_process},
		
	{Key_vol_down,ITEM_AV_DEC,AV_volume_down_key_process},	
	
	{Remote_adding,ITEM_AV_ADDING,AV_volume_up_key_process},
	
	{Remote_dec,ITEM_AV_DEC,AV_volume_down_key_process},	
	
	{Key_mute,ITEM_AV_MUTE,Mute_key_process},
	
	{Remote_mute,ITEM_AV_MUTE,Mute_key_process},
	
	{Remote_time,ITEM_AV_TIME,Switch_time_on_off},	

	{Key_time,ITEM_AV_TIME,Switch_time_on_off},	
		
	{0}
};

#pragma INTO_ROM
Function_list CDC_menu_mode_function_list[] = 
{
	{Key_vol_up,ITEM_CDC_ADDING,CDC_volume_up_key_process},	
		
	{Key_vol_down,ITEM_CDC_DEC,CDC_volume_down_key_process},

	{Remote_adding,ITEM_CDC_ADDING,CDC_volume_up_key_process},	
		
	{Remote_dec,ITEM_CDC_DEC,CDC_volume_down_key_process},
	
	{Key_mute,ITEM_CDC_MUTE,Mute_key_process},
	
	{Remote_mute,ITEM_CDC_MUTE,Mute_key_process},
	
	{Key_play_pause,ITEM_CDC_PLAY_PAUSE,Send_play_pause_command_to_CDC},

	{Remote_play_pause,ITEM_CDC_PLAY_PAUSE,Send_play_pause_command_to_CDC},
	
	{Key_jump_back,ITEM_CDC_JUMP_BACK,Send_jump_back_command_to_CDC},	
	
	{Key_jump_front,ITEM_CDC_JUMP_FRONT,Send_jump_front_command_to_CDC},

	{Remote_jump_back,ITEM_CDC_JUMP_BACK,Send_jump_back_command_to_CDC},	
	
	{Remote_jump_front,ITEM_CDC_JUMP_FRONT,Send_jump_front_command_to_CDC},
	
	{Remote_time,ITEM_CDC_TIME,Switch_time_on_off},	

	{Key_time,ITEM_CDC_TIME,Switch_time_on_off},
	
	{0}
};

#pragma INTO_ROM
Function_list Setting_menu_mode_function_list[] = 
{
	
	{0}
};

#pragma INTO_ROM
Function_list Video_menu_mode_function_list[] = 
{
	{Key_vol_up,ITEM_VIDEO_ADDING,Video_up_adjust_process},
		
	{Key_vol_down,ITEM_VIDEO_DEC,Video_down_adjust_process},

	{Remote_adding,ITEM_VIDEO_ADDING,Video_up_adjust_process},
	
	{Remote_dec,ITEM_VIDEO_DEC,Video_down_adjust_process},
	
	{0}
};

#pragma INTO_ROM
Function_list Csp_menu_mode_function_list[] = 
{
	{Key_vol_up,ITEM_CSP_FRONT_SP_BALANCE_ADDING,Csp_up_adjust_process},
		
	{Key_vol_down,ITEM_CSP_FRONT_SP_BALANCE_DEC,Csp_down_adjust_process},

	{Remote_adding,ITEM_CSP_FRONT_SP_BALANCE_ADDING,Csp_up_adjust_process},	
	
	{Remote_dec,ITEM_CSP_FRONT_SP_BALANCE_DEC,Csp_down_adjust_process},
	
	{Key_mute,ITEM_CSP_MUTE,Mute_key_process},
	
	{Remote_mute,ITEM_CSP_MUTE,Mute_key_process},
	
	{0}
};

#pragma INTO_ROM
Function_list Time_menu_mode_function_list[] = 
{
	{Key_vol_up,ITEM_TIME_ADDING,Clock_Adjust_up_process},
		
	{Key_vol_down,ITEM_TIME_DEC,Clock_Adjust_down_process},

	{Remote_adding,ITEM_TIME_ADDING,Clock_Adjust_up_process},

	{Remote_dec,ITEM_TIME_DEC,Clock_Adjust_down_process},
	
	{0}
};

#pragma INTO_ROM
unsigned short int  *Total_menu_function_list[10] = {Main_menu_mode_function_list,DVD_menu_mode_function_list,TV_menu_mode_function_list,Radio_menu_mode_function_list,AV_menu_mode_function_list,CDC_menu_mode_function_list,Setting_menu_mode_function_list,Video_menu_mode_function_list,Csp_menu_mode_function_list,Time_menu_mode_function_list};
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

unsigned char System_flag;
unsigned char System_flag1;
unsigned char System_flag2;
unsigned char System_flag3;
unsigned char System_flag4;
static unsigned char Keep_key_code;
unsigned char Code_number;
unsigned char DVD_command;
unsigned char Bell_cnt = 0;
unsigned int DVD_close_power_delay;
unsigned char System_mode;
unsigned char Old_system_mode;
static unsigned char Do_item;
static unsigned char Old_do_item;
unsigned char Item_light_time;
unsigned char Volume_key_delay = 15;
unsigned char Open_close_panel_delay = 10;
static unsigned char Picture_counter;
unsigned char Select_item=DEFAULT_MENU_ITEM;
unsigned int Out_disc_delay = 0;
unsigned char Chinese_english_system=English_system;
unsigned char Disc_in_close_panel_delay;
unsigned char Key_delay=100;	//Long key is over 1s
static unsigned char Long_key_time=0;
unsigned int Protect_motor_delay=0;
void Init_IO_port(void);
void ACC_off_setting_IO(void);
void Init_each_process(void);
void Detect_key(void);
void Select_ADC_channel(unsigned char Channel);
void First_wait_unchain_stby(void);
void Detect_ACC(void);
void Process_KEY_IR_system(void);
void Display_process(void);
static void Radio_menu_display_process(void);
static void AV_menu_display_process(void);
static void Main_menu_display_process(void);
static void DVD_menu_display_process(void);
static void TV_menu_display_process(void);
static void CDC_menu_display_process(void);
static void Setting_menu_display_process(void);
static void Video_setting_menu_display_process(void);
void Process_touch_system(void);
void Change_system_mode(void);
void Open_panel(void);
void Close_panel(void);
void Detect_panel_finish_open_close_active(void);
static void Short_open_key_open_close_panel_process(void);
static void Long_open_key_close_panel_process(void);
static void Power_key_process(void);
static void Mode_key_process(void);
void Active_select_osd_item_process(void);
void Select_the_prev_osd_item_process(void);
void Select_the_next_osd_item_process(void);
void  Force_to_main_menu_mode(void);
void Remote_open_key_process(void);
void Remote_display_key_process(void);
void Close_panel_sometime_process(void);
void Open_panel_sometime_process(void);
static void Detect_panel_state(void);
static void Only_DVD_function_key_process(void);
void System_off(void);
static void System_on(void);
void Mute_key_process(void);
void Process_dvd_disc_in(void);
void Set_bell_sound_time(unsigned char Time);
void Detect_BACK_CAR(void);
void Detect_telephone_mute(void);
void Detect_BACK_CHCH(void);
void Time_full_disable_OSD_process(void);
void Disc_in_detect_close_panel_process(void);
void System_mute_on(void);
void System_mute_off(void);
static void Enable_disable_back_block_process(void);

/****************************************************************
Function:Only the 500 a4 function list
****************************************************************/
#ifdef Quest_500_a4		
static void Switch_to_DVD_mode(void);
static void Switch_to_TV_mode(void);
static void Switch_to_Radio_FM_mode(void);
static void Switch_to_Radio_AM_mode(void);
static void Switch_to_CDC_mode(void);	
static void Stop_key_process(void);
#endif

/**********************************************************
Function:Init the system,include IO port/timer/interrup and so on
**********************************************************/
void Init_IO_port(void)
{
//IO port init
//	bit7			bit6			bit5			bit4					bit3			bit2			bit1			bit0
//	SCL			SDA			POWER_ON	TFT_POWER_ON		PLL_CE		PLL_DI		PLL_DO		PLL_CL
	PA_DDR = 0XFd;
	PA_OR = 0XFd;
	PA_DR = 0Xcf;
//	bit7			bit6				bit5			bit4			bit3			bit2			bit1			bit0

⌨️ 快捷键说明

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