|
|
@@ -134,9 +134,19 @@ int ml5238_is_discharging(void){
|
|
|
return _discharger_mosfet_is_open();
|
|
|
}
|
|
|
|
|
|
-void ml5238_cell_start_balance(uint16_t balance_mask){
|
|
|
+int ml5238_cell_start_balance(uint16_t balance_mask){
|
|
|
ml5238_write(ML5238_CBALH, (balance_mask >> 8) & 0xFF);
|
|
|
ml5238_write(ML5238_CBALL, balance_mask & 0xFF);
|
|
|
+ if (balance_mask == 0) { //stop balance need check
|
|
|
+ uint8_t datah = 0xFF;
|
|
|
+ uint8_t datal = 0xFF;
|
|
|
+ if ((ml5238_read(ML5238_CBALH, &datah) == 0) && (ml5238_read(ML5238_CBALL, &datal) == 0)) {
|
|
|
+ if ((datah == 0) && (datal == 0)) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return 1;
|
|
|
}
|
|
|
|
|
|
|