Subversion Repositories FlightCtrl

Rev

Rev 554 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 554 Rev 559
Line 342... Line 342...
342
        MesswertNick = AdWertNick;
342
        MesswertNick = AdWertNick;
343
        MesswertRoll = AdWertRoll;
343
        MesswertRoll = AdWertRoll;
344
        MesswertGier = AdWertGier;
344
        MesswertGier = AdWertGier;
345
        Mittelwert_AccNick = ACC_AMPLIFY * (long)AdWertAccNick;
345
        Mittelwert_AccNick = ACC_AMPLIFY * (long)AdWertAccNick;
346
        Mittelwert_AccRoll = ACC_AMPLIFY * (long)AdWertAccRoll;
346
        Mittelwert_AccRoll = ACC_AMPLIFY * (long)AdWertAccRoll;
347
        Mittelwert_AccHoch = (long)AdWertAccHoch;
347
        Mittelwert_AccHoch = AdWertAccHoch;
348
   // ADC einschalten
348
   // ADC einschalten
349
    ANALOG_ON; 
349
    ANALOG_ON; 
350
    if(Poti1 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110) Poti1++; else if(Poti1 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110 && Poti1) Poti1--;
350
    if(Poti1 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110) Poti1++; else if(Poti1 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110 && Poti1) Poti1--;
351
    if(Poti2 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110) Poti2++; else if(Poti2 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110 && Poti2) Poti2--;
351
    if(Poti2 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110) Poti2++; else if(Poti2 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110 && Poti2) Poti2--;
352
    if(Poti3 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110) Poti3++; else if(Poti3 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110 && Poti3) Poti3--;
352
    if(Poti3 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110) Poti3++; else if(Poti3 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110 && Poti3) Poti3--;
Line 1102... Line 1102...
1102
    if(SummeNick > 0) SummeNick-= 2 ; else SummeNick += 2 ;
1102
    if(SummeNick > 0) SummeNick-= 2 ; else SummeNick += 2 ;
1103
    if(SummeNick >  16000) SummeNick =  16000;
1103
    if(SummeNick >  16000) SummeNick =  16000;
1104
    if(SummeNick < -16000) SummeNick = -16000;
1104
    if(SummeNick < -16000) SummeNick = -16000;
1105
    pd_ergebnis = DiffNick + Ki * SummeNick; // PI-Regler für Nick                                      
1105
    pd_ergebnis = DiffNick + Ki * SummeNick; // PI-Regler für Nick                                      
1106
    // Motor Vorn
1106
    // Motor Vorn
1107
    tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
1107
    tmp_int = ((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
1108
    if(pd_ergebnis >  tmp_int) pd_ergebnis =  tmp_int;
1108
    if(pd_ergebnis >  tmp_int) pd_ergebnis =  tmp_int;
1109
    if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int;
1109
    if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int;
Line 1110... Line 1110...
1110
 
1110
 
1111
    motorwert = GasMischanteil + pd_ergebnis + GierMischanteil;   // Mischer
1111
    motorwert = GasMischanteil + pd_ergebnis + GierMischanteil;   // Mischer
Line 1127... Line 1127...
1127
    else                 SummeRoll += DiffRoll;  // I-Anteil bei HH
1127
    else                 SummeRoll += DiffRoll;  // I-Anteil bei HH
1128
    if(SummeRoll > 0) SummeRoll-= 2 ; else SummeRoll += 2 ;
1128
    if(SummeRoll > 0) SummeRoll-= 2 ; else SummeRoll += 2 ;
1129
    if(SummeRoll >  16000) SummeRoll =  16000;
1129
    if(SummeRoll >  16000) SummeRoll =  16000;
1130
    if(SummeRoll < -16000) SummeRoll = -16000;
1130
    if(SummeRoll < -16000) SummeRoll = -16000;
1131
    pd_ergebnis = DiffRoll + Ki * SummeRoll;    // PI-Regler für Roll
1131
    pd_ergebnis = DiffRoll + Ki * SummeRoll;    // PI-Regler für Roll
1132
    tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
1132
    tmp_int = ((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
1133
    if(pd_ergebnis >  tmp_int) pd_ergebnis =  tmp_int;
1133
    if(pd_ergebnis >  tmp_int) pd_ergebnis =  tmp_int;
1134
    if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int;
1134
    if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int;
1135
    // Motor Links
1135
    // Motor Links
1136
    motorwert = GasMischanteil + pd_ergebnis - GierMischanteil;
1136
    motorwert = GasMischanteil + pd_ergebnis - GierMischanteil;
1137
        if ((motorwert < 0)) motorwert = 0;
1137
        if ((motorwert < 0)) motorwert = 0;