| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- int8_t Battery_CB_Switch_Bake(uint8_t cb_operate)
- {
- CB_VAL cb_val_temp;
- uint8_t delay_flag = 0;
-
- switch(cb_operate)
- {
- case CB_BAT1:
- cb_val_temp.s10_bit = 1;
- cb_val_temp.s11_bit = 1;
- cb_val_temp.s20_bit = 0;
- cb_val_temp.s21_bit = 0;
- cb_val_temp.ss__bit = 0;
- break;
- case CB_BAT2:
-
- cb_val_temp.s10_bit = 0;
- cb_val_temp.s11_bit = 0;
- cb_val_temp.s20_bit = 1;
- cb_val_temp.s21_bit = 1;
- cb_val_temp.ss__bit = 0;
- break;
- case CB_BAT1_BAT2_PARRALLEL:
- if(sub_bms_info_1.packet_common.m_total_vol >= sub_bms_info_2.packet_common.m_total_vol)
- {
-
- cb_val_temp.s10_bit = 1;
- cb_val_temp.s11_bit = 1;
- cb_val_temp.s20_bit = 1;
- cb_val_temp.s21_bit = 0;
- cb_val_temp.ss__bit = 0;
- }
- else
- {
-
- cb_val_temp.s10_bit = 1;
- cb_val_temp.s11_bit = 0;
- cb_val_temp.s20_bit = 1;
- cb_val_temp.s21_bit = 1;
- cb_val_temp.ss__bit = 0;
- }
- break;
- case CB_BAT1_BAT2_SERIES:
-
- cb_val_temp.s10_bit = 1;
- cb_val_temp.s11_bit = 0;
- cb_val_temp.s20_bit = 1;
- cb_val_temp.s21_bit = 0;
- cb_val_temp.ss__bit = 1;
- break;
- case CB_BAT_NO:
- default:
- cb_val_temp.s10_bit = 0;
- cb_val_temp.s11_bit = 0;
- cb_val_temp.s20_bit = 0;
- cb_val_temp.s21_bit = 0;
- cb_val_temp.ss__bit = 0;
- break;
- }
- // 1----->0
- if(cb_val_last.s10_bit > cb_val_temp.s10_bit)
- {
- S10_ENABLE(cb_val_temp.s10_bit);
- delay_flag = 1;
- }
- if(cb_val_last.s11_bit > cb_val_temp.s11_bit)
- {
- S11_ENABLE(cb_val_temp.s11_bit);
- delay_flag = 1;
- }
- if(cb_val_last.s20_bit > cb_val_temp.s20_bit)
- {
- S20_ENABLE(cb_val_temp.s20_bit);
- delay_flag = 1;
- }
- if(cb_val_last.s21_bit > cb_val_temp.s21_bit)
- {
- S21_ENABLE(cb_val_temp.s21_bit);
- delay_flag = 1;
- }
- if(cb_val_last.ss__bit > cb_val_temp.ss__bit)
- {
- SS__ENABLE(cb_val_temp.ss__bit);
- delay_flag = 1;
- }
- //delay
- if(delay_flag)
- delay_1ms(1);
- //
- Battery_CB_Operate(&cb_val_temp);
- //
- cb_val_last = cb_val_temp;
- cb_operate_state = cb_operate;
-
- return cb_operate;
-
- }
|