| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- #ifndef APP_H
- #define APP_H
- #define CHARG_PROTECT_OPEN(x) gpio_bit_write(GPIOB,GPIO_PIN_12,(bit_status)(x))
- #define BAT1_IS_OPEN() (!gpio_input_bit_get(GPIOC,GPIO_PIN_2))
- #define BAT2_IS_OPEN() (!gpio_input_bit_get(GPIOC,GPIO_PIN_1))
- #define S10_ENABLE(x) //gpio_bit_write()
- #define S11_ENABLE(x) gpio_bit_write(GPIOB,GPIO_PIN_13,(bit_status)(x))
- #define S20_ENABLE(x) //gpio_bit_write()
- #define S21_ENABLE(x) gpio_bit_write(GPIOB,GPIO_PIN_15,(bit_status)(x))
- #define SS__ENABLE(x) gpio_bit_write(GPIOB,GPIO_PIN_14,(bit_status)(x))
- //#define BATTERY_RESISTANCE_OHM (0.1F)
- #define PARRALLEL_DELTA_VOL (2500)
- #define CHARGE_DELAY_TIME_OUT_COUNT (10000)
- #define SHARK_CHARGE_CAPACITY_DELTA 2
- #define SHARK_CHARGER_VOLTAGE_MAX 55000
- #define SHARK_CHARGE_VOL_FUZZ 300
- #define SHARK_PARRALLEL_VOL_MIN 500
- #define SHARK_PARRALLEL_VOL_MAX 1000
- #define SHARK_BATT_VOLTAGE_FUZZ 10000
- #define SHARK_SERIES_MAX_TIMES 10
- #define SHARK_BATT_SINGLE_DELTA 500
- enum
- {
- PRE_PARRALLEL,
- PRE_SERIES,
-
- PRE_MAX
- };
- enum
- {
- CFG_BAT_NO,
- CFG_BAT1,
- CFG_BAT2,
- CFG_BAT1_BAT2_PARRALLEL,
- CFG_BAT1_BAT2_SERIES,
-
- CFG_MAX
- };
- enum
- {
- CB_BAT_NO,
- CB_BAT1,
- CB_BAT2,
- CB_BAT1_BAT2_PARRALLEL,
- CB_BAT1_BAT2_SERIES,
- CB_BAT1_BAT2_AUTO,
-
- CB_MAX
- };
- enum
- {
- CB_NO_ERR,
- CB_NO_BAT1,
- CB_NO_BAT2,
- CB_NO_OPERATE,
- CB_MAX_ERR
- };
- typedef struct
- {
- uint8_t s10_bit:1;
- uint8_t s11_bit:1;
- uint8_t s20_bit:1;
- uint8_t s21_bit:1;
- uint8_t ss__bit:1;
- }CB_VAL;
- // extern CB_VAL cb_val_last;
- extern uint8_t cb_operate_state;
- extern uint8_t Check_CB_oper_sta_start;
- extern DELAY_COMMON Check_CB_oper_sta_delay;
- extern uint8_t is_intelligent;
- extern uint8_t CB_OPERATE_PRECEDENCE_Config;
- extern shark_bool shark_battery_series_locked;
- extern u8 shark_battery_series_times;
- extern shark_bool shark_battery_switch_busy;
- extern shark_bool shark_printf_enabled;
- __inline void Check_CB_Oper_Sta_Delay(void)
- {
- if(Check_CB_oper_sta_delay.set)
- {
- if(++Check_CB_oper_sta_delay.count >= 2000)
- {
- Check_CB_oper_sta_delay.count = 0;
- Check_CB_oper_sta_start = 1;
- }
- }
-
- }
- // #define CHECK_SERIES_PROTECT_VOL (40000)
- // #define SERIES_PROTECT_VOL (CHECK_SERIES_PROTECT_VOL + 3000)
- #define SERIES_UNDER_VOL_TIME_OUT (4000)
- #define SINGLE_VOLTAGE_MIN (30000)
- #define SERIES_VOLTAGE_MIN (SINGLE_VOLTAGE_MIN * 2)
- #define SERIES_EXIT_PERCENT 2
- #define SERIES_ENTER_PERCENT (SERIES_EXIT_PERCENT + 1)
- enum
- {
- D_BMS_ERROR_NO,
- D_BMS_ERROR_SERISE_CD_OFF,
- D_BMS_ERROR_MAX
- };
- enum
- {
- OBCS_CHARGER_OUT,
- OBCS_CHARGER_IN,
- OBCS_CHARGER_CHECK_FINISH,
- OBCS_CHARGER_MAX
- };
- extern uint8_t one_bat_charge_status;
- extern uint8_t serise_low_qd_status;
- #define NENG_HAO_BI_MIN (300)
- #define NENG_HAO_BI_MAX (700)
- #define SY_VALID_FLAG_KEY (0x0325)
- typedef struct
- {
- uint16_t sy_valid_flag;
- double neng_hao_bi;
- }SYLC_SAVE_PARM;
- typedef struct
- {
- uint32_t sy_dan_ci_li_cheng_temp;
- uint32_t sy_dan_ci_li_cheng;
- uint8_t sy_percent_1;
- uint8_t sy_percent_2;
- uint8_t sy_percent_dlta;
- uint8_t sy_percent_total;
- uint8_t sy_yu_ji_ke_xing_shi_li_cheng;
- SYLC_SAVE_PARM sy_ss_parm;
- }SHENG_YU_LI_CHENG;
- extern SHENG_YU_LI_CHENG sheng_yu_li_cheng;
- extern uint8_t power_switch_from;
- extern uint8_t work_normal;
- void App_Initial(void);
- void CB_Operate_Initial(void);
- void Misc_Initial(void);
- int8_t Battery_CB_Switch(uint8_t cb_operate);
- uint8_t Is_BAT1_Lock(void);
- uint8_t Is_BAT2_Lock(void);
- void Check_CB_Operate_State(void);
- uint8_t Battery_Change_Mode(uint8_t cfg_mode);
- void Power_On_Normal(uint8_t enable,uint8_t from);
- void Intelligent_Management_Battery(void);
- void Check_Battery_Small_Current(void);
- uint8_t Is_Soak(void);
- void Series_Delay_Timeout(void);
- void Cal_Sheng_Yu_Li_Cheng(void);
- void Initial_Neng_Hao_Bi(void);
- extern void Flash_flag_clear(void);
- void Save_Param_Time_Out(void)
;
- void Save_Param(void);
- #endif
|