|
|
@@ -125,6 +125,25 @@ void Battery_CB_Operate(CB_VAL *cb_val)
|
|
|
SS__ENABLE(cb_val->ss__bit);
|
|
|
}
|
|
|
|
|
|
+uint8_t battery_wait_voltage_down(uint32_t voltage)
|
|
|
+{
|
|
|
+ uint8_t success = 0;
|
|
|
+ uint16_t times;
|
|
|
+
|
|
|
+ for (times = 500; times > 0; times--) {
|
|
|
+ if (Measure_Vol() < voltage) {
|
|
|
+ if (++success > 20) {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ success = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ delay_1ms(10);
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
|
|
|
int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
{
|
|
|
@@ -142,21 +161,9 @@ int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
cb_val_temp.ss__bit = 0;
|
|
|
Battery_CB_Operate(&cb_val_temp);
|
|
|
|
|
|
- for(i = 0;i < 500;i++)
|
|
|
- {
|
|
|
- if(Measure_Vol() <= SELECT_ONE_BATTERY_VOL)
|
|
|
- break;
|
|
|
-
|
|
|
- if(Handle_Can_Data() == 1)
|
|
|
- {
|
|
|
- // output fail
|
|
|
-
|
|
|
- ;
|
|
|
- }
|
|
|
- delay_1ms(10);
|
|
|
- }
|
|
|
- if(i >= 500)
|
|
|
+ if(!battery_wait_voltage_down(SELECT_ONE_BATTERY_VOL)) {
|
|
|
goto SWITCH_ERROR;
|
|
|
+ }
|
|
|
|
|
|
switch(cb_operate_state)
|
|
|
{
|
|
|
@@ -278,22 +285,9 @@ int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
cb_val_temp.ss__bit = 0;
|
|
|
Battery_CB_Operate(&cb_val_temp);
|
|
|
|
|
|
- for(i = 0;i < 500;i++)
|
|
|
- {
|
|
|
- if(Measure_Vol() <= SELECT_ONE_BATTERY_VOL)
|
|
|
- break;
|
|
|
-
|
|
|
- if(Handle_Can_Data() == 1)
|
|
|
- {
|
|
|
- // output fail
|
|
|
-
|
|
|
- ;
|
|
|
- }
|
|
|
- delay_1ms(10);
|
|
|
- }
|
|
|
- if(i >= 500)
|
|
|
+ if(!battery_wait_voltage_down(SELECT_ONE_BATTERY_VOL)) {
|
|
|
goto SWITCH_ERROR;
|
|
|
-
|
|
|
+ }
|
|
|
|
|
|
switch(cb_operate_state)
|
|
|
{
|
|
|
@@ -416,21 +410,9 @@ int8_t Battery_CB_Switch(uint8_t cb_operate)
|
|
|
cb_val_temp.ss__bit = 0;
|
|
|
Battery_CB_Operate(&cb_val_temp);
|
|
|
|
|
|
- for(i = 0;i < 500;i++)
|
|
|
- {
|
|
|
- if(Measure_Vol() <= SELECT_ONE_BATTERY_VOL)
|
|
|
- break;
|
|
|
-
|
|
|
- if(Handle_Can_Data() == 1)
|
|
|
- {
|
|
|
- // output fail
|
|
|
-
|
|
|
- ;
|
|
|
- }
|
|
|
- delay_1ms(10);
|
|
|
- }
|
|
|
- if(i >= 500)
|
|
|
+ if(!battery_wait_voltage_down(SELECT_ONE_BATTERY_VOL)) {
|
|
|
goto SWITCH_ERROR;
|
|
|
+ }
|
|
|
|
|
|
switch(cb_operate_state)
|
|
|
{
|