123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- #ifndef _BSP_SYS_H
- #define _BSP_SYS_H
- #define SW_RST_DC_IN 1
- #define SW_QTEST_NORMAL 2
- #define SW_QTEST_ONLY_PAIR 3
- #define SW_RST_BT_MDM 4
- #define SW_RST_FLAG 5 //直接复位系统
- #define VOL_MAX sys_cb.vol_max //最大音量级数
- ///请勿修改sys_cb_t结构体
- typedef struct {
- u8 vol;
- u8 vol_set;
- u8 hfp_vol; //通话音量(范围: 0~15)
- u8 eq_mode;
- u8 lang_id;
- s8 gain_offset; //用于动态修改音量表
- u8 hfp2sys_mul; //系统音量与HFP音量倍数,手机HFP音量只有16级。
- u8 lpwr_warning_limit_cnt; //低电播报N次自动关机控制
- u8 lpwr_leave_vbat; //离开低电的电压差
- u16 lpwr_warning_cnt; //低电播放周期计数
- u16 lpwr_cnt; //低电关机消抖计数
- u16 vol_max;
- u16 kh_vol_msg;
- u16 vbat;
- u32 sleep_time;
- u32 pwroff_time;
- u32 sleep_delay;
- u32 pwroff_delay;
- u32 sleep_wakeup_time;
- u32 ms_ticks; //ms为单位
- u32 rand_seed;
- u8 sleep_counter; //sleepmode counter计数
- u8 loc_house_state; //bit0=is_open, bit1=key_state
- u8 rem_house_bat;
- u8 rem_bat;
- u8 rem_house_state; //bit0=is_open, bit1=key_state
- u8 loc_house_bat;
- u8 loc_bat;
- u8 bt_tws_lr_mode;
- u8 tws_force_channel; //TWS固定声道标志: 0->自动分配, 1->固定右声道, 2->固定左声道
- u8 rem_force_channel;
- u8 vusb_force_channel; //VUSB固定声道
- u8 qtest_force_channel;
- u8 name_suffix_en; //TWS名称是否增加后缀名了
- u8 tws_res_brk;
- u8 house_idx;
- u8 sw_rst_flag; //软件复位标志
- u8 inbox_pwrdwn_flag;
- u8 outbox_pwron_flag; //出仓开机标志
- u8 inbox_wken_flag; //inbox wakeup
- u8 inbox_sta; //是否在仓内
- s8 nr_sta;
- u8 nr_bits;
- u8 ear_menu_en;
- u8 rem_ear_sta; //bit0=in_the_ear, bit1=in_the_house
- u8 loc_ear_sta;
- u8 popup_bat_hide;
- u8 popup_3bat_upd_en;
- u8 menu_det_dis;
- u8 inear_sta;
- u8 wko_pwrkey_en;
- u8 tkey_pwrdwn_en;
- u16 temp_tecnt;
- u32 te_tick;
- u8 lowpwr_dwn_flag;
- u8 discon_reason; //0=单独关机, 1=同步关机
- u8 dac_sta;
- volatile u8 dc_rst_flag;
- volatile u8 cm_times;
- volatile u8 loudspeaker_mute; //功放MUTE标志
- volatile u8 pwrkey_5s_check; //是否进行开机长按5S的PWRKEY检测
- volatile u8 pwrkey_5s_flag; //长按5秒PWRKEY开机标志
- volatile u8 charge_sta; //0:充电关闭, 1:充电开启, 2:充满
- volatile u8 charge_full_bled_flag; //charge充满蓝灯常亮标志
- volatile u8 ch_bled_cnt; //charge充满蓝灯亮时间计数
- volatile u8 poweron_flag; //pwrkey开机标志
- volatile u8 pwrdwn_tone_en; //POWER DOWN是否播放提示音
- volatile u8 pwrdwn_hw_flag; //模拟硬开关,关机标志
- volatile u8 hall_2_pwrdwn_flag;
- volatile u8 ntc_2_pwrdwn_flag;
- volatile u8 breathe_led_sta; //呼吸灯状态
- volatile u8 qtest_flag;
- volatile u8 incall_flag;
- u8 qtest_ack;
- u32 pwroff_tick;
- u8 warning_playing;
- u8 sleep_aupll_en;
- u8 ntc_adc_ch;
- u8 adkey_ch;
- u8 anc_start;
- u8 anc_user_mode; //anc模式, 0:关闭, 1:ANC, 2:通透
- s8 anc_adjust_val; //anc mic调整值
- u8 tp_adjust_val; //tp anc mic调整值
- u32 anc_mic_gain; //anc mic初始值
- u8 pdn_boat_flag; //船运模式关机
- u8 sleep_dac_en; //sleep休眠时是否保持DAC开启
- u8 unmute_rled_on; //充电状态红灯亮, 功放解MUTE。
- u8 rled_mux_mute_en; //红灯复用MUTE脚使能
- u8 chstop_pwrwn_en; //软关机时关掉充电
- ///位变量只能在Main线程修改!!!
- u8 rtc_first_pwron : 1, //RTC是否第一次上电
- cm_factory : 1, //是否第一次FLASH上电
- cm_vol_change : 1, //音量级数是否需要更新到FLASH
- cm_inited : 1, //cm_buf是否已经初始化
- bthid_mode : 1, //独立HID拍照模式标志
- sleep_en : 1, //用于控制是否进入sleep
- clr_counter_en : 1; //连接中清自动关机计时
- } sys_cb_t;
- extern sys_cb_t sys_cb;
- ///sys_cb1_t结构体可修改
- typedef struct {
- u8 a2dp_vol_delay_set;
- u8 va_start;
- #if BT_TWS_CHARGE_DELAY_EN
- u8 dc_in_cnt;
- u32 charge_ticks;
- #endif
- #if CHARGE_TSEN_DETECT
- u16 adc_tsen_val; //adc采集内部温度检测tsen值
- u8 trick_curr_bkp;
- u8 const_curr_bkp;
- #endif
- #if BT_A2DP_DEFAULT_VOLUME_EN
- u8 a2dp_default_volume; //设置连上手机的默认音乐音量
- u32 a2dp_default_volume_ticks; //超时清flag
- #if BT_A2DP_IOS_DEFAULT_VOLUME_FIX
- u32 delay_send_vol_ticks;
- #endif
- #endif
- u8 tws_get_map_time;
- u8 dec_eq_enable; //解密eq和dbb功能使能
- #if USER_PWM_LED_EN
- u8 pwm_bled_on;
- u8 pwm_rled_on;
- u8 pwm_led_sta;
- #endif
- #if BT_HFP_CALL_EARPHONE_EN
- u8 call_switch; //控制手机端接听后转移到耳机,后续切换不影响
- u8 call_need_switch;
- u32 call_switch_ticks;
- #endif
- #if CHARGE_NTC_DETECT
- u8 chg_ntc_stop;
- #endif
- #if BT_DISP_LOW_VBAT_EN
- u32 disp_low_vbat_ticks;
- u8 disp_low_vbat_flag;
- #endif
- #if BT_TWS_WARNING_SLAVE_BYPASS_FIX
- u8 warning_is_playing;
- #endif
- #if TRY_KEY_SWITCH
- bool change_vol_flag;
- u16 change_vol_delay;
- #endif // TRY_KEY_SWITCH
- #if TRY_WARNING_SWITCH
- bool tws_is_slave_flag;
- #endif // TRY_WARNING_SWITCH
- #if TRY_SYNC_KL_4S_FACTORY_SWITCH
- bool factory_flag;
- bool sync_kl_flag;
- bool sync_kl_l_flag;
- bool sync_kl_r_flag;
- #endif // TRY_SYNC_KL_4S_FACTORY_SWITCH
- #if TRY_LOWBAT_WARNING_SWITCH
- u16 lowbat_warning_time_count;
- #endif // TRY_LOWBAT_WARNING_SWITCH
- #if TRY_CHARGEBOX_PWROFF
- bool charge_flag;
- bool high_v_time;
- bool low_v_time;
- u8 high_v_time_count;
- u8 low_v_time_count;
- u8 high_v_count;
- u8 low_v_count;
- bool charge_pwroff_flag;
- u32 charge_pwroff_check_ticks;
- #endif // TRY_CHARGEBOX_PWROFF
- #if TRY_KH_VOL_CHANGE_INTERVAL
- u8 key_hold_count;
- #endif // TRY_KH_VOL_CHANGE_INTERVAL
- #if TRY_TOUCH_WARNING_DELAY_FIX
- bool pairing_warning_flag;
- u16 pairing_warning_delay;
- bool mode_warning_flag;
- u16 mode_warning_delay;
- #endif // TRY_TOUCH_WARNING_DELAY_FIX
- #if TRY_TWS_CONN_SCAN_CLOSE
- u32 tws_conn_ticks;
- #endif // TRY_TWS_CONN_SCAN_CLOSE
- } sys_cb1_t;
- extern sys_cb1_t sys_cb1;
- extern volatile u32 ticks_50ms;
- extern uint lt_sdq_valid;
- void bsp_sys_init(void);
- void bsp_update_init(void);
- void timer1_irq_init(void);
- void bsp_sys_mute(void);
- void bsp_sys_unmute(void);
- void set_buck_mode(u8 buck_en);
- void bsp_loudspeaker_mute(void);
- void bsp_loudspeaker_unmute(void);
- void linein_detect(void);
- bool linein_micl_is_online(void);
- void x26m_cap_tune(void);
- void sw_reset_kick(u8 source);
- void lt_uart_tx_auth_start(void);
- void lt_uart_tx_auth_process(void);
- void lt_var_init(void);
- void lt_uart_wait_done(void);
- void lt_charge_var_init(void);
- void lt_charge_poweron(void);
- void lt_charge_process(void);
- void lt_charge_init(void);
- void dongle_check_key(void);
- #if TRY_SYNC_KL_4S_FACTORY_SWITCH
- void sync_kl_4s_factory_process(void);
- #endif // TRY_SYNC_KL_4S_FACTORY_SWITCH
- #if TRY_LOWBAT_WARNING_SWITCH
- void lowbat_warning_process(void);
- #endif // TRY_LOWBAT_WARNING_SWITCH
- #endif // _BSP_SYS_H
|