Subversion Repositories FlightCtrl

Rev

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

Rev 1701 Rev 1702
Line 178... Line 178...
178
    DebugOut.Analog[6] = (Mess_Integral_Hoch / 512);//AdWertAccHoch;// Aktuell_az;//(Mess_Integral_Hoch / 512);//Aktuell_az;
178
    DebugOut.Analog[6] = (Mess_Integral_Hoch / 512);//AdWertAccHoch;// Aktuell_az;//(Mess_Integral_Hoch / 512);//Aktuell_az;
179
    DebugOut.Analog[8] = KompassValue;
179
    DebugOut.Analog[8] = KompassValue;
180
    DebugOut.Analog[9] = UBat;
180
    DebugOut.Analog[9] = UBat;
181
    DebugOut.Analog[10] = SenderOkay;
181
    DebugOut.Analog[10] = SenderOkay;
182
    DebugOut.Analog[11] = ErsatzKompass / GIER_GRAD_FAKTOR;
182
    DebugOut.Analog[11] = ErsatzKompass / GIER_GRAD_FAKTOR;
-
 
183
    DebugOut.Analog[12] = Motor[0].SetPoint;
-
 
184
    DebugOut.Analog[13] = Motor[1].SetPoint;
-
 
185
    DebugOut.Analog[14] = Motor[2].SetPoint;
-
 
186
    DebugOut.Analog[15] = Motor[3].SetPoint;
183
    DebugOut.Analog[20] = ServoNickValue;
187
    DebugOut.Analog[20] = ServoNickValue;
184
    DebugOut.Analog[22] = Capacity.ActualCurrent;
188
    DebugOut.Analog[22] = Capacity.ActualCurrent;
185
    DebugOut.Analog[23] = Capacity.UsedCapacity;
189
    DebugOut.Analog[23] = Capacity.UsedCapacity;
186
//    DebugOut.Analog[22] = FromNaviCtrl_Value.GpsZ;
190
//    DebugOut.Analog[22] = FromNaviCtrl_Value.GpsZ;
187
//    DebugOut.Analog[29] = FromNaviCtrl_Value.SerialDataOkay;
191
//    DebugOut.Analog[29] = FromNaviCtrl_Value.SerialDataOkay;
188
        DebugOut.Analog[29] = Capacity.MinOfMaxPWM;
192
        DebugOut.Analog[29] = Capacity.MinOfMaxPWM;
189
    DebugOut.Analog[30] = GPS_Nick;
193
    DebugOut.Analog[30] = GPS_Nick;
190
    DebugOut.Analog[31] = GPS_Roll;
194
    DebugOut.Analog[31] = GPS_Roll;
-
 
195
    if(VersionInfo.HardwareError[0] || VersionInfo.HardwareError[1]) DebugOut.Status[1] |= 1; else DebugOut.Status[1] &= 0xfe;
191
}
196
}
Line 192... Line 197...
192
 
197
 
193
void Piep(unsigned char Anzahl, unsigned int dauer)
198
void Piep(unsigned char Anzahl, unsigned int dauer)
194
{
199
{
Line 234... Line 239...
234
void SetNeutral(unsigned char AccAdjustment)
239
void SetNeutral(unsigned char AccAdjustment)
235
//############################################################################
240
//############################################################################
236
{
241
{
237
        unsigned char i;
242
        unsigned char i;
238
        unsigned int gier_neutral=0, nick_neutral=0, roll_neutral=0;
243
        unsigned int gier_neutral=0, nick_neutral=0, roll_neutral=0;
239
 
-
 
-
 
244
    VersionInfo.HardwareError[0] = 0;
240
    HEF4017R_ON;
245
    HEF4017R_ON;
241
        NeutralAccX = 0;
246
        NeutralAccX = 0;
242
        NeutralAccY = 0;
247
        NeutralAccY = 0;
243
        NeutralAccZ = 0;
248
        NeutralAccZ = 0;
Line 339... Line 344...
339
    if(ServoActive)
344
    if(ServoActive)
340
         {
345
         {
341
                HEF4017R_ON;
346
                HEF4017R_ON;
342
                DDRD  |=0x80; // enable J7 -> Servo signal
347
                DDRD  |=0x80; // enable J7 -> Servo signal
343
     }
348
     }
-
 
349
 
-
 
350
        if((AdNeutralNick < 150 * 16) || (AdNeutralNick > 850 * 16)) { VersionInfo.HardwareError[0] |= DEFEKT_G_NICK; };
-
 
351
        if((AdNeutralRoll < 150 * 16) || (AdNeutralRoll > 850 * 16)) { VersionInfo.HardwareError[0] |= DEFEKT_G_ROLL; };
-
 
352
        if((AdNeutralGier < 150 * 2)  || (AdNeutralGier > 850 * 2)) { VersionInfo.HardwareError[0] |= DEFEKT_G_GIER; };
-
 
353
        if((NeutralAccX < 300) || (NeutralAccX > 750)) { VersionInfo.HardwareError[0] |= DEFEKT_A_NICK; };
-
 
354
        if((NeutralAccY < 300) || (NeutralAccY > 750)) { VersionInfo.HardwareError[0] |= DEFEKT_A_ROLL; };
-
 
355
        if((NeutralAccZ < 512) || (NeutralAccZ > 850)) { VersionInfo.HardwareError[0] |= DEFEKT_A_Z; };
344
}
356
}
Line -... Line 357...
-
 
357
 
345
 
358
 
346
//############################################################################
359
//############################################################################
347
// Bearbeitet die Messwerte
360
// Bearbeitet die Messwerte
348
void Mittelwert(void)
361
void Mittelwert(void)
349
//############################################################################
362
//############################################################################
Line 523... Line 536...
523
*/
536
*/
524
                  }
537
                  }
525
          if(PC_MotortestActive) PC_MotortestActive--;
538
          if(PC_MotortestActive) PC_MotortestActive--;
526
        }
539
        }
527
        else FCFlags |= FCFLAG_MOTOR_RUN;
540
        else FCFlags |= FCFLAG_MOTOR_RUN;
528
 
-
 
529
    DebugOut.Analog[12] = Motor[0].SetPoint;
-
 
530
    DebugOut.Analog[13] = Motor[1].SetPoint;
-
 
531
    DebugOut.Analog[14] = Motor[2].SetPoint;
-
 
532
    DebugOut.Analog[15] = Motor[3].SetPoint;
-
 
533
 
-
 
534
    //Start I2C Interrupt Mode
541
    //Start I2C Interrupt Mode
535
    motor_write = 0;
542
    motor_write = 0;
536
    I2C_Start(TWI_STATE_MOTOR_TX);
543
    I2C_Start(TWI_STATE_MOTOR_TX);
537
}
544
}
Line 592... Line 599...
592
#ifdef SWITCH_LEARNS_CAREFREE
599
#ifdef SWITCH_LEARNS_CAREFREE
593
    if(!CareFree) ControlHeading = (((int) EE_Parameter.OrientationAngle * 15 + KompassValue) % 360) / 2;
600
    if(!CareFree) ControlHeading = (((int) EE_Parameter.OrientationAngle * 15 + KompassValue) % 360) / 2;
594
#endif
601
#endif
595
        CareFree = 1;
602
        CareFree = 1;
596
    if(tmp >= 248 && Poti[255 - tmp] < 50) CareFree = 0;
603
    if(tmp >= 248 && Poti[255 - tmp] < 50) CareFree = 0;
-
 
604
    if(FromNaviCtrl.CompassValue < 0 && CareFree) VersionInfo.HardwareError[0] |= DEFEKT_CAREFREE_ERR; else VersionInfo.HardwareError[0] &= ~DEFEKT_CAREFREE_ERR;
597
   }
605
   }
598
   else CareFree = 0;
606
   else CareFree = 0;
Line 599... Line 607...
599
 
607
 
600
 if(FromNaviCtrl.CompassValue < 0 && MotorenEin && CareFree && BeepMuster == 0xffff) // ungültiger Kompasswert
608
 if(FromNaviCtrl.CompassValue < 0 && MotorenEin && CareFree && BeepMuster == 0xffff) // ungültiger Kompasswert
601
        {
609
        {
602
         beeptime = 15000;
610
         beeptime = 15000;
603
         BeepMuster = 0xA400;
611
         BeepMuster = 0xA400;
604
         CareFree = 0;
612
         CareFree = 0;
-
 
613
    }
605
    }
614
 
606
 if(CareFree) {if(Parameter_AchsKopplung1 < 210) Parameter_AchsKopplung1 += 30;}
615
 if(CareFree) {if(Parameter_AchsKopplung1 < 210) Parameter_AchsKopplung1 += 30;}
Line 607... Line 616...
607
}
616
}
608
 
617
 
Line 719... Line 728...
719
                            {
728
                            {
720
                             if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
729
                             if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
721
                            }
730
                            }
722
                                                   ServoActive = 0;
731
                                                   ServoActive = 0;
723
                           SetNeutral(0);
732
                           SetNeutral(0);
724
                           calibration_done = 1;
733
                           calibration_done = 1;
725
                                                   ServoActive = 1;
734
                                                   ServoActive = 1;
726
                                                   DDRD  |=0x80; // enable J7 -> Servo signal
735
                                                   DDRD  |=0x80; // enable J7 -> Servo signal
727
                           Piep(GetActiveParamSet(),120);
736
                           Piep(GetActiveParamSet(),120);
728
                         }
737
                         }
729
                        }
738
                        }
Line 758... Line 767...
758
// Einschalten
767
// Einschalten
759
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
768
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
760
                                                        if(++delay_einschalten > 200)
769
                                                        if(++delay_einschalten > 200)
761
                                                        {
770
                                                        {
762
                                                                delay_einschalten = 0;
771
                                                                delay_einschalten = 0;
763
                                                                if(calibration_done)
772
                                                                if(!VersionInfo.HardwareError[0] && calibration_done)
764
                                                                {
773
                                                                {
765
                                                                        modell_fliegt = 1;
774
                                                                        modell_fliegt = 1;
766
                                                                        MotorenEin = 1;
775
                                                                        MotorenEin = 1;
767
                                                                        sollGier = 0;
776
                                                                        sollGier = 0;
768
                                                                        Mess_Integral_Gier = 0;
777
                                                                        Mess_Integral_Gier = 0;