Subversion Repositories FlightCtrl

Rev

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

Rev 1152 Rev 1163
Line 4... Line 4...
4
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5
// + Copyright (c) 04.2007 Holger Buss
5
// + Copyright (c) 04.2007 Holger Buss
6
// + Nur für den privaten Gebrauch
6
// + Nur für den privaten Gebrauch
7
// + www.MikroKopter.com
7
// + www.MikroKopter.com
8
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9
// + Es gilt für das gesamte Projekt (Hardware, Software, Bin?rfiles, Sourcecode und Dokumentation),
9
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
10
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zul?ssig ist.
10
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist.
11
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
11
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
12
// + bzgl. der Nutzungsbedingungen aufzunehmen.
12
// + bzgl. der Nutzungsbedingungen aufzunehmen.
13
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Best?ckung und Verkauf von Platinen oder Baus?tzen,
13
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
14
// + Verkauf von Luftbildaufnahmen, usw.
14
// + Verkauf von Luftbildaufnahmen, usw.
15
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
15
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
16
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder ver?ffentlicht,
16
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
17
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright m?ssen dann beiliegen
17
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
18
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
18
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
19
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
19
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
20
// + auf anderen Webseiten oder sonstigen Medien ver?ffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
20
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
21
// + eindeutig als Ursprung verlinkt werden
21
// + eindeutig als Ursprung verlinkt werden
22
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
22
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
23
// + Keine Gew?hr auf Fehlerfreiheit, Vollst?ndigkeit oder Funktion
23
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
24
// + Benutzung auf eigene Gefahr
24
// + Benutzung auf eigene Gefahr
25
// + Wir ?bernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachsch?den
25
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
26
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
26
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
27
// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
27
// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
28
// + mit unserer Zustimmung zul?ssig
28
// + mit unserer Zustimmung zulässig
29
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
29
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
30
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
30
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
31
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
31
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
32
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
32
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
33
// + this list of conditions and the following disclaimer.
33
// + this list of conditions and the following disclaimer.
Line 177... Line 177...
177
     {
177
     {
178
      if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
178
      if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
179
     }
179
     }
Line 180... Line 180...
180
 
180
 
181
     AdNeutralNick= AdWertNick;
181
     AdNeutralNick= AdWertNick;
182
         AdNeutralRoll= AdWertRoll;
182
     AdNeutralRoll= AdWertRoll;
183
         AdNeutralGier= AdWertGier;
183
     AdNeutralGier= AdWertGier;
184
     AdNeutralGierBias = AdWertGier;
184
     AdNeutralGierBias = AdWertGier;
185
     StartNeutralRoll = AdNeutralRoll;
185
     StartNeutralRoll = AdNeutralRoll;
186
     StartNeutralNick = AdNeutralNick;
186
     StartNeutralNick = AdNeutralNick;
187
    if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) > 4)
187
    if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) > 4)
188
    {
188
    {
189
      NeutralAccY = abs(Mittelwert_AccRoll) / ACC_AMPLIFY;
189
          NeutralAccY = abs(Mittelwert_AccRoll) / ACC_AMPLIFY;
190
          NeutralAccX = abs(Mittelwert_AccNick) / ACC_AMPLIFY;
190
          NeutralAccX = abs(Mittelwert_AccNick) / ACC_AMPLIFY;
191
          NeutralAccZ = Aktuell_az;
191
          NeutralAccZ = Aktuell_az;
192
    }
192
    }
193
    else
193
    else
194
    {
194
    {
195
      NeutralAccX = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK+1]);
195
          NeutralAccX = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK+1]);
196
          NeutralAccY = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL+1]);
196
          NeutralAccY = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL+1]);
197
          NeutralAccZ = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_Z]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_Z+1]);
197
          NeutralAccZ = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_Z]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_Z+1]);
Line 198... Line 198...
198
    }
198
    }
199
 
199
 
200
        Mess_IntegralNick = 0;
200
    Mess_IntegralNick = 0;
201
    Mess_IntegralNick2 = 0;
201
    Mess_IntegralNick2 = 0;
202
    Mess_IntegralRoll = 0;
202
    Mess_IntegralRoll = 0;
203
    Mess_IntegralRoll2 = 0;
203
    Mess_IntegralRoll2 = 0;
Line 223... Line 223...
223
    FromNaviCtrl_Value.Kalman_K = -1;
223
    FromNaviCtrl_Value.Kalman_K = -1;
224
    FromNaviCtrl_Value.Kalman_MaxDrift = EE_Parameter.Driftkomp * 16;
224
    FromNaviCtrl_Value.Kalman_MaxDrift = EE_Parameter.Driftkomp * 16;
225
    FromNaviCtrl_Value.Kalman_MaxFusion = 32;
225
    FromNaviCtrl_Value.Kalman_MaxFusion = 32;
226
}
226
}
Line 227... Line 227...
227
 
227
 
228
static inline void LesePotis(void) {
228
inline void LesePotis(void) {
229
    /*  Warum 110? Knüppel geht von -125 bis 125!
229
    /*  Warum 110? Knüppel geht von -125 bis 125!
230
        if(Poti1 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110) Poti1++; else if(Poti1 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110 && Poti1) Poti1--;
230
        if(Poti1 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110) Poti1++; else if(Poti1 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110 && Poti1) Poti1--;
231
        if(Poti2 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110) Poti2++; else if(Poti2 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110 && Poti2) Poti2--;
231
        if(Poti2 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110) Poti2++; else if(Poti2 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110 && Poti2) Poti2--;
232
        if(Poti3 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110) Poti3++; else if(Poti3 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110 && Poti3) Poti3--;
232
        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 250... Line 250...
250
    else if (Poti4 > 255) Poti4 = 255;
250
    else if (Poti4 > 255) Poti4 = 255;
251
}
251
}
Line 252... Line 252...
252
 
252
 
253
//############################################################################
253
//############################################################################
254
// Bearbeitet die Messwerte
254
// Bearbeitet die Messwerte
255
void Mittelwert(void)
255
inline void Mittelwert(void)
256
//############################################################################
256
//############################################################################
257
{
257
{
258
    static signed long tmpl,tmpl2;
258
    static signed long tmpl,tmpl2;
259
    MesswertGier = (signed int) AdNeutralGier - AdWertGier;
259
    MesswertGier = (signed int) AdNeutralGier - AdWertGier;
260
    MesswertGierBias = (signed int) AdNeutralGierBias - AdWertGier;
260
    MesswertGierBias = (signed int) AdNeutralGierBias - AdWertGier;
261
    MesswertRoll = (signed int) AdWertRoll - AdNeutralRoll;
261
    MesswertRoll = (signed int) AdWertRoll - AdNeutralRoll;
Line 262... Line 262...
262
    MesswertNick = (signed int) AdWertNick - AdNeutralNick;
262
    MesswertNick = (signed int) AdWertNick - AdNeutralNick;
263
 
263
 
Line 264... Line 264...
264
//DebugOut.Analog[26] = MesswertNick;
264
//DebugOut.Analog[26] = MesswertNick;
265
DebugOut.Analog[28] = MesswertRoll;
265
//DebugOut.Analog[28] = MesswertRoll;
266
 
266
 
267
// Beschleunigungssensor  ++++++++++++++++++++++++++++++++++++++++++++++++
267
// Beschleunigungssensor  ++++++++++++++++++++++++++++++++++++++++++++++++
Line 421... Line 421...
421
}
421
}
Line 422... Line 422...
422
 
422
 
423
 
423
 
424
 
424
 
425
//############################################################################
425
//############################################################################
426
// Tr?gt ggf. das Poti als Parameter ein
426
// Trägt ggf. das Poti als Parameter ein
427
void ParameterZuordnung(void)
427
void ParameterZuordnung(void)
428
//############################################################################
428
//############################################################################
Line 439... Line 439...
439
 CHK_POTI(Parameter_I_Faktor,EE_Parameter.I_Faktor,0,255);
439
 CHK_POTI(Parameter_I_Faktor,EE_Parameter.I_Faktor,0,255);
440
 CHK_POTI(Parameter_UserParam1,EE_Parameter.UserParam1,0,255);
440
 CHK_POTI(Parameter_UserParam1,EE_Parameter.UserParam1,0,255);
441
 CHK_POTI(Parameter_UserParam2,EE_Parameter.UserParam2,0,255);
441
 CHK_POTI(Parameter_UserParam2,EE_Parameter.UserParam2,0,255);
442
 CHK_POTI(Parameter_UserParam3,EE_Parameter.UserParam3,0,255);
442
 CHK_POTI(Parameter_UserParam3,EE_Parameter.UserParam3,0,255);
443
 CHK_POTI(Parameter_UserParam4,EE_Parameter.UserParam4,0,255);
443
 CHK_POTI(Parameter_UserParam4,EE_Parameter.UserParam4,0,255);
444
 CHK_POTI(Parameter_UserParam5,EE_Parameter.UserParam5,0,255);
-
 
-
 
444
/*
445
 CHK_POTI(Parameter_UserParam6,EE_Parameter.UserParam6,0,255);
445
 CHK_POTI(Parameter_UserParam6,EE_Parameter.UserParam6,0,255);
-
 
446
 CHK_POTI(Parameter_UserParam5,EE_Parameter.UserParam5,0,255);
-
 
447
*/
-
 
448
    CHK_POTI_MM(Parameter_J16Brightness, PARAM_LED_BRIGHTNESS_J16, 0, 250);
-
 
449
    CHK_POTI_MM(Parameter_J17Brightness, PARAM_LED_BRIGHTNESS_J17, 0, 250);
-
 
450
 
446
 CHK_POTI(Parameter_UserParam7,EE_Parameter.UserParam7,0,255);
451
 CHK_POTI(Parameter_UserParam7,EE_Parameter.UserParam7,0,255);
447
 CHK_POTI(Parameter_UserParam8,EE_Parameter.UserParam8,0,255);
452
 CHK_POTI(Parameter_UserParam8,EE_Parameter.UserParam8,0,255);
448
 CHK_POTI(Parameter_ServoNickControl,EE_Parameter.ServoNickControl,0,255);
453
 CHK_POTI(Parameter_ServoNickControl,EE_Parameter.ServoNickControl,0,255);
449
 CHK_POTI(Parameter_LoopGasLimit,EE_Parameter.LoopGasLimit,0,255);
454
 CHK_POTI(Parameter_LoopGasLimit,EE_Parameter.LoopGasLimit,0,255);
450
 CHK_POTI(Parameter_AchsKopplung1,    EE_Parameter.AchsKopplung1,0,255);
455
 CHK_POTI(Parameter_AchsKopplung1,    EE_Parameter.AchsKopplung1,0,255);
451
 CHK_POTI(Parameter_AchsGegenKopplung1,EE_Parameter.AchsGegenKopplung1,0,255);
456
 CHK_POTI(Parameter_AchsGegenKopplung1,EE_Parameter.AchsGegenKopplung1,0,255);
452
 CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability,0,255);
457
 CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability,0,255);
453
    CHK_POTI_MM(Parameter_J16Timing, EE_Parameter.J16Timing, 1, 255);
458
    CHK_POTI_MM(Parameter_J16Timing, EE_Parameter.J16Timing, 1, 255);
454
    CHK_POTI_MM(Parameter_J16Brightness, PARAM_LED_BRIGHTNESS_J16, 0, 250);
-
 
455
    CHK_POTI_MM(Parameter_J17Timing, EE_Parameter.J17Timing, 1, 255);
459
    CHK_POTI_MM(Parameter_J17Timing, EE_Parameter.J17Timing, 1, 255);
456
    CHK_POTI_MM(Parameter_J17Brightness, PARAM_LED_BRIGHTNESS_J17, 0, 250);
-
 
Line 457... Line 460...
457
 
460
 
458
// CHK_POTI(Parameter_NaviGpsModeControl,EE_Parameter.NaviGpsModeControl,0,255);
461
// CHK_POTI(Parameter_NaviGpsModeControl,EE_Parameter.NaviGpsModeControl,0,255);
459
 //CHK_POTI(Parameter_NaviGpsGain,EE_Parameter.NaviGpsGain,0,255);
462
 //CHK_POTI(Parameter_NaviGpsGain,EE_Parameter.NaviGpsGain,0,255);
460
// CHK_POTI(Parameter_NaviGpsP,EE_Parameter.NaviGpsP,0,255);
463
// CHK_POTI(Parameter_NaviGpsP,EE_Parameter.NaviGpsP,0,255);
Line 701... Line 704...
701
        /* Über Parameter läßt sich zwischen "+" und "X" - Formations
704
        /* Über Parameter läßt sich zwischen "+" und "X" - Formations
702
         * umschalten (sh. parameter.h)
705
         * umschalten (sh. parameter.h)
703
         */
706
         */
704
        if (PARAM_X_FORMATION) {
707
        if (PARAM_X_FORMATION) {
Line 705... Line -...
705
 
-
 
706
            chanRoll = -chanRoll;
-
 
707
 
708
 
708
            // Stick-Koordinatensystem um -45° (rechts) drehen
709
            // Stick-Koordinatensystem um -45° (rechts) drehen
709
            chanNick *= COS45;
710
            chanNick *= COS45;
Line 710... Line 711...
710
            chanRoll *= COS45;
711
            chanRoll *= -COS45;
711
 
712
 
Line 712... Line 713...
712
            int chanNickTemp = (chanNick - chanRoll) / 10000L;
713
            int chanNickTemp = (chanNick - chanRoll) / 10000L;
713
            int chanRollTemp = (chanRoll + chanNick) / 10000L;
714
            int chanRollTemp = (chanRoll + chanNick) / 10000L;
Line 714... Line 715...
714
 
715
 
715
            chanNick = chanNickTemp;
716
            chanNick = chanNickTemp;
716
            chanRoll = -chanRollTemp;
717
            chanRoll = -chanRollTemp;
717
 
718
 
718
            if (chanNick > MAX_CHAN_VAL)
719
            if (chanNick > MAX_CHAN_VAL)
719
                chanNick = MAX_CHAN_VAL;
720
                chanNick = MAX_CHAN_VAL;
720
            if (chanNick < -MAX_CHAN_VAL)
721
            else if (chanNick < -MAX_CHAN_VAL)
721
                chanNick = -MAX_CHAN_VAL;
722
                chanNick = -MAX_CHAN_VAL;
722
            if (chanRoll > MAX_CHAN_VAL)
723
            if (chanRoll > MAX_CHAN_VAL)
Line 723... Line 724...
723
                chanRoll = MAX_CHAN_VAL;
724
                chanRoll = MAX_CHAN_VAL;
724
            if (chanRoll < -MAX_CHAN_VAL)
725
            else if (chanRoll < -MAX_CHAN_VAL)
Line 738... Line 739...
738
        stick_roll = (stick_roll * 3 + ((int) chanRoll) * EE_Parameter.Stick_P) / 4;
739
        stick_roll = (stick_roll * 3 + ((int) chanRoll) * EE_Parameter.Stick_P) / 4;
739
        stick_roll += chanRollDiff * EE_Parameter.Stick_D;
740
        stick_roll += chanRollDiff * EE_Parameter.Stick_D;
740
        StickRoll = stick_roll - GPS_Roll;
741
        StickRoll = stick_roll - GPS_Roll;
Line 741... Line 742...
741
 
742
 
742
 
743
 
Line 743... Line 744...
743
    StickGier = -PPM_in[EE_Parameter.Kanalbelegung[K_GIER]];
744
        StickGier = -PPM_in[EE_Parameter.Kanalbelegung[K_GIER]];
744
        StickGas  = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] + 120;
745
        StickGas  = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] + 120;
745
 
746
 
Line 1179... Line 1180...
1179
    //DebugOut.Analog[16] = Mittelwert_AccHoch;
1180
    //DebugOut.Analog[16] = Mittelwert_AccHoch;
1180
    DebugOut.Analog[17] = FromNaviCtrl_Value.Distance;
1181
    DebugOut.Analog[17] = FromNaviCtrl_Value.Distance;
1181
    DebugOut.Analog[18] = (int)FromNaviCtrl_Value.OsdBar;
1182
    DebugOut.Analog[18] = (int)FromNaviCtrl_Value.OsdBar;
1182
    DebugOut.Analog[19] = WinkelOut.CalcState;
1183
    DebugOut.Analog[19] = WinkelOut.CalcState;
1183
    DebugOut.Analog[20] = ServoValue;
1184
    DebugOut.Analog[20] = ServoValue;
-
 
1185
/*
1184
    DebugOut.Analog[27] = (int)FromNaviCtrl_Value.Kalman_MaxDrift;
1186
    DebugOut.Analog[27] = (int)FromNaviCtrl_Value.Kalman_MaxDrift;
1185
    DebugOut.Analog[29] = (int)FromNaviCtrl_Value.Kalman_K;
1187
    DebugOut.Analog[29] = (int)FromNaviCtrl_Value.Kalman_K;
1186
    DebugOut.Analog[30] = GPS_Nick;
1188
    DebugOut.Analog[30] = GPS_Nick;
1187
    DebugOut.Analog[31] = GPS_Roll;
1189
    DebugOut.Analog[31] = GPS_Roll;
-
 
1190
*/
Line 1188... Line 1191...
1188
 
1191
 
1189
 
1192