📄 system_operation.c
字号:
/***************************************************************************
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 + -