Subversion Repositories FlightCtrl

Rev

Rev 2407 | Rev 2416 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2407 Rev 2408
Line 87... Line 87...
87
 
87
 
88
 
88
 
89
void LipoDetection(unsigned char print)
89
void LipoDetection(unsigned char print)
90
{
90
{
91
        #define MAX_CELL_VOLTAGE 43 // max cell voltage for LiPO
91
        #define MAX_CELL_VOLTAGE 43 // max cell voltage for LiPO
92
        if(print) printf("\n\rBatt:");
92
        if(print)
93
//      timer = SetDelay(100);
-
 
94
//      if(print) while (!CheckDelay(timer));
-
 
95
        // up to 6s LiPo, less than 2s is technical impossible
93
         {
-
 
94
          printf("\n\rBatt:");
96
//      for(cells = 2; cells < 7; cells++) if(UBat < cells * MAX_CELL_VOLTAGE) break;
95
          LipoCells = 1 + UBat / MAX_CELL_VOLTAGE;
97
        LipoCells = 1 + UBat / MAX_CELL_VOLTAGE;
96
         }
98
        if(EE_Parameter.UnterspannungsWarnung < 50)
97
        if(EE_Parameter.UnterspannungsWarnung < 50)
99
        {
98
        {
100
                BattLowVoltageWarning = LipoCells * EE_Parameter.UnterspannungsWarnung;
99
                BattLowVoltageWarning = LipoCells * EE_Parameter.UnterspannungsWarnung;
Line 106... Line 105...
106
        }
105
        }
107
        else BattLowVoltageWarning = EE_Parameter.UnterspannungsWarnung;
106
        else BattLowVoltageWarning = EE_Parameter.UnterspannungsWarnung;
Line 108... Line 107...
108
 
107
 
109
        // automatische Zellenerkennung
108
        // automatische Zellenerkennung
-
 
109
        if(EE_Parameter.AutoLandingVoltage < 50) EE_Parameter.AutoLandingVoltage = LipoCells * EE_Parameter.AutoLandingVoltage;
Line 110... Line 110...
110
        if(EE_Parameter.AutoLandingVoltage < 50) EE_Parameter.AutoLandingVoltage = LipoCells * EE_Parameter.AutoLandingVoltage;
110
        if(EE_Parameter.ComingHomeVoltage < 50)  EE_Parameter.ComingHomeVoltage = LipoCells * EE_Parameter.ComingHomeVoltage;
-
 
111
 
-
 
112
        if(EE_Parameter.AutoLandingVoltage > BattLowVoltageWarning) EE_Parameter.AutoLandingVoltage = BattLowVoltageWarning - 1;
111
 
113
        if(EE_Parameter.ComingHomeVoltage  >= BattLowVoltageWarning) EE_Parameter.ComingHomeVoltage  = BattLowVoltageWarning - 1;
112
        if(EE_Parameter.AutoLandingVoltage > BattLowVoltageWarning) EE_Parameter.AutoLandingVoltage = BattLowVoltageWarning - 1;
114
        if(EE_Parameter.AutoLandingVoltage >= EE_Parameter.ComingHomeVoltage) EE_Parameter.AutoLandingVoltage = EE_Parameter.ComingHomeVoltage - 1;
113
 
115
       
114
        if(print)
116
        if(print)
-
 
117
         {
115
         {
118
          printf(" Low warning: %d.%dV",BattLowVoltageWarning/10,BattLowVoltageWarning%10);
116
          printf(" Low warning: %d.%d",BattLowVoltageWarning/10,BattLowVoltageWarning%10);
119
          if(EE_Parameter.ComingHomeVoltage) printf("  Auto-CH: %d.%dV",EE_Parameter.ComingHomeVoltage/10,EE_Parameter.ComingHomeVoltage%10);
117
          if(EE_Parameter.AutoLandingVoltage) printf("  Autolanding: %d.%d",EE_Parameter.AutoLandingVoltage/10,EE_Parameter.AutoLandingVoltage%10);
120
          if(EE_Parameter.AutoLandingVoltage) printf("  Autolanding: %d.%dV",EE_Parameter.AutoLandingVoltage/10,EE_Parameter.AutoLandingVoltage%10);
Line 118... Line 121...
118
         }
121
         }
119
}
122
}