app_timer.h 5.87 KB
#ifndef _APP_TIMER_
#define _APP_TIMER_


#if 1
#define TIMER_ALARM_SNOOZE_STEP		9				/*9min*/
#else
//for test
#define TIMER_ALARM_SNOOZE_STEP		2				/*2min*/
//#define TIMER_ALARM_SNOOZE_STEP		3				/*2min*/
#endif

#if 1
#define TIMER_ALARM_SNOOZE_OFF_HOUR		1
#define TIMER_ALARM_SNOOZE_OFF_MINUTE	0
#else
//for test
#define TIMER_ALARM_SNOOZE_OFF_HOUR		0
//#define TIMER_ALARM_SNOOZE_OFF_MINUTE	3
#define TIMER_ALARM_SNOOZE_OFF_MINUTE	5
#endif


#define STANDBY_TIME			12000			/*60s*/

#define	TIME_12_HOUR			8640000L

#define	LCD_ANIMATION_TIME		1				/*1s*/
#define	EL_LIGHT_TIME			3				/*3s*/

//#define NAV_LCD_ROLL_TIME		40				/*1s*/
#define NAV_LCD_ROLL_TIME		20				/*500ms*/


#define MOTOR_TIMER_PRESET		0x8000

#define TICK_STEP				25				/*25ms*/
#define TICK_300ms				(300/TICK_STEP)
#define TICK_400ms				(350/TICK_STEP)
#define TICK_500ms				(500/TICK_STEP)
#define TICK_1000ms				(1000/TICK_STEP)

#define TIMER_TICK				(200/TICK_STEP)
#define TIMER_TICK1				(500/TICK_STEP)
#define TIMER_TICK2				(1000/TICK_STEP)

#define	USB_MSC_MAX_TIMER		8


typedef struct {
	U16 timer_ticks;
	U16 stanby_ticks;
	U16 key_hold_timer;
	U32	window_time;
	U32	idle_time;
	U32 sleep_timer;

	U16 nav_lcd_roll_timer;

	U32	ticks;

	U16 waiting_play_time;
#ifdef REMOTE_ENABLE
	U16 remoteKeyUpTimer;
	//for enable remote interrupt
	U16 remoteIntEanbleTimer;
	U8 rmtFrameEndTimer;
#endif
	U16 secondTimer;

	U8 process_Timer;
	
#ifdef DSPEQ_TUNING_ENABLE
	U8 set_eq_process_timer;
#endif

	U16 mute_Timer; //for mute off
	U16 mute_on_Timer;

//	U16 DAPP_mute_Timer;

#ifdef VOLUME_AUTO_PLUS
	U16 VolAutoPlus_Timer;
#endif

#ifdef VOLUME_AUTO_MINUS
	U16 VolAutoMinus_Timer;
#endif

#ifdef KEY_UP_TIMER_ENABLE
	U8 keyUpTimer;
#endif

	U32 RecTimer;

#ifdef FOR_ESD_PROTECT
	U16 esdProtectTimer;
#endif

#ifdef BT_HCI_ENABLE
	U16 bt_reLink_timer;	
#endif

	U8 saveDataTimer;

	U16	usbLUNtimerRun;
	U16	usbLUNtime;
	U16	usbMaxluns;
	U16	usbLUNtimer[USB_MSC_MAX_TIMER];

	U16	usbLunDetTimer;

#if 1
#ifdef USBHOST_OPEN_TIMER_ENABLE
	U8 usbOpenTimer;
#endif

#ifdef USBHOST_CLOSE_TIMER_ENABLE
	U8 usbCloseTimer;
#endif

#ifdef USBHOST_PWR_ON_TIMER_ENABLE
	U8 usbPwrOnTimer;
#endif
#endif
	U16 usbdev_upstream_timeout_timer;
} TIMER_DATA;

extern TIMER_DATA timer_data;

void app_timer_init (void);
void app_timer_open (void);
void app_timer_close (void);
void app_timer_fini (void);

void cd_fit_batt_handler (void);

void app_timer_key_hold_set (U16 key_val, U16 time);
void app_timer_key_hold_reset (void);
void app_timer_delete_time_set(U32 time);
void app_timer_idle_time_reset (void);

void app_timer_window_time_set (U32 time);
void app_timer_window_time_reset (void);

void app_timer_motor_time_preset (void);
void app_timer_motor_time_reset (void);
void app_timer_servo_timer_set (U16 servo_time);
void app_timer_charger_timer_set( U32 time);
U32 app_timer_get_idle_time (void);

void app_timer_decode_sleep_set (U16 time);
void app_timer_waiting_play_time (U16 timer);

void app_timer_bluetooth_pair_time_set(U16 ms);
void app_timer_bluetooth_pair_time_clr(void);
void app_timer_bluetooth_time_set(U16 time);

void app_timer_bluetooth_stabdby_off_time_set(U16 ms);
void app_timer_bluetooth_stabdby_off_time_clr(void);
U16 app_timer_bluetooth_stabdby_off_time_get(void);
void app_timer_bluetooth_stabdby_on_time_set(U16 ms);
void app_timer_bluetooth_stabdby_on_time_clr(void);
void app_timer_bluetooth_nfc_time_reset(void);

void app_timer_bluetooth_time_reset(void);
U8 app_timer_get_bluetooth_time(void);

void app_timer_digit_key_time_set(U32 time);
void app_timer_digit_key_time_reset(void);

void usbLUNtimerTick( void );
void hcd_timerOut( void );
void timer0_handler (void);

extern U8 decode_block_process_timer;

void timer_usbLUNdetTimerSet( U16 ms );
void timer_usbLUNdetTimerStop( void );

void timer_usbMTPintTimerSet( U16 ms );
void timer_usbMTPintTimerStart( void );
void timer_usbMTPintTimerStop( void );

void app_timer_key_hold_set_timer (U16 time);
void app_timer_end_set(U32 time);
void app_timer_second_timer_set(U16 time);
void app_timer_snooze_timeout_time_set(U32 time);
void app_timer_scroll_set (U16 time);
void app_timer_mute_off_time_set(U32 time);
void app_timer_mute_off_time_clr(void);
void app_timer_vol_auto_plus_time_set(U32 time);
void app_timer_vol_auto_plus_time_clr(void);
void app_timer_vol_auto_minus_time_set(U32 time);
void app_timer_vol_auto_minus_time_clr(void);

void app_timer_sleep_time_set (U32 time);
U32 app_timer_sleep_time_get (void);

void app_timer_save_data_time_set(U16 ms);
void app_timer_save_data_time_clr(void);
U16 app_timer_save_data_time_get(void);

void app_timer_usb_open_time_set(U16 time);
void app_timer_usb_close_time_set(U16 time);
void app_timer_usb_pwr_on_time_set(U16 time);

void app_timer_iphone_source_time_set(U16 time);
void app_timer_iphone_source_time_clr(void);
void app_timer_iphone_power_on_time_set(U16 ms);
void app_timer_iphone_power_on_time_clr(void);

void app_timer_ipod_dectect_time_set (U32 time);
U32 app_timer_ipod_dectect_time_get (void);


void app_timer_i2cTinerOut_set(U8 time);
U8 app_timer_i2cTinerOut_get(U8 time);

void app_timer_dab_reveive_time_set(U16 time);
U16 app_timer_dab_reveive_time_get(void);

void app_timer_keyUpTimer_time_set (U16 time);
U16 app_timer_keyUpTimer_time_get (void);
void app_timer_flash_time_set (U32 time);

void app_timer_adcRecTimer_time_set (U32 time);
U16 app_timer_adcRecTimer_time_get (void);

//The support timeout is 6375ms(255*CD_TIMER_TIME).
void app_timer_esdProtectTimer_time_set (U16 time);
U16 app_timer_esdProtectTimer_time_get (void);

void app_timer_bt_reLinktTimer_time_set (U16 time);
void app_timer_bt_reLinktTimer_time_clr (void);
U16 app_timer_bt_reLinktTimer_time_get (void);

#ifdef IPOD_USB_AUDIO
void app_timer_ipod_authen_timeout_timer_set(U16 time);
void app_timer_ipod_authen_timeout_timer_clr(void);
U16 app_timer_ipod_authen_timeout_timer_get(void);
#endif
void app_timer_apps_key_hold_set2(U32 time);
void app_timer_apps_key_hold_set(U32 time);

#endif