Subversion Repositories FlightCtrl

Rev

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

Rev 1760 Rev 1765
Line 200... Line 200...
200
                }
200
                }
201
                Motor[i].State &= ~MOTOR_STATE_ERROR_MASK; // clear error counter
201
                Motor[i].State &= ~MOTOR_STATE_ERROR_MASK; // clear error counter
202
        }
202
        }
203
        printf("\n\r===================================");
203
        printf("\n\r===================================");
Line 204... Line 204...
204
 
204
 
Line 205... Line 205...
205
    if(RequiredMotors < FoundMotors) VersionInfo.HardwareError[1] |= DEFEKT_MIXER_ERR;
205
    if(RequiredMotors < FoundMotors) VersionInfo.HardwareError[1] |= FC_ERROR1_MIXER;
206
 
206
 
207
        //if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
207
        //if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
208
        {
208
        {
Line 262... Line 262...
262
                    UpdateMotor=0;
262
                    UpdateMotor=0;
263
            if(WinkelOut.CalcState) CalMk3Mag();
263
            if(WinkelOut.CalcState) CalMk3Mag();
264
            else  MotorRegler();
264
            else  MotorRegler();
265
                        SendMotorData();
265
                        SendMotorData();
266
            ROT_OFF;
266
            ROT_OFF;
267
            if(SenderOkay)  { SenderOkay--; VersionInfo.HardwareError[1] &= ~DEFEKT_PPM_ERR; }
267
            if(SenderOkay)  { SenderOkay--; VersionInfo.HardwareError[1] &= ~FC_ERROR1_PPM; }
268
                        else
268
                        else
269
                        {
269
                        {
270
                                TIMSK1 |= _BV(ICIE1); // enable PPM-Input
270
                                TIMSK1 |= _BV(ICIE1); // enable PPM-Input
271
                                PPM_in[0] = 0; // set RSSI to zero on data timeout
271
                                PPM_in[0] = 0; // set RSSI to zero on data timeout
272
                                VersionInfo.HardwareError[1] |= DEFEKT_PPM_ERR;
272
                                VersionInfo.HardwareError[1] |= FC_ERROR1_PPM;
273
                        }
273
                        }
274
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
274
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
275
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 160 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 220) SenderOkay = 160;
275
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 160 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 220) SenderOkay = 160;
276
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 101 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 1) SenderOkay = 101;
276
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 101 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 1) SenderOkay = 101;
277
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
277
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Line 280... Line 280...
280
                  if(!I2CTimeout)
280
                  if(!I2CTimeout)
281
                                   {
281
                                   {
282
                                    I2C_Reset();
282
                                    I2C_Reset();
283
                    I2CTimeout = 5;
283
                    I2CTimeout = 5;
284
                                        DebugOut.Analog[28]++; // I2C-Error
284
                                        DebugOut.Analog[28]++; // I2C-Error
285
                                        FCFlags |= FCFLAG_I2CERR;
-
 
286
                                        VersionInfo.HardwareError[1] |= DEFEKT_I2C;
285
                                        VersionInfo.HardwareError[1] |= FC_ERROR1_I2C;
287
                                        DebugOut.Status[1] |= 0x02; // BL-Error-Status
286
                                        DebugOut.Status[1] |= 0x02; // BL-Error-Status
288
                                   }
287
                                   }
289
                  if((BeepMuster == 0xffff) && MotorenEin)
288
                  if((BeepMuster == 0xffff) && MotorenEin)
290
                   {
289
                   {
291
                    beeptime = 10000;
290
                    beeptime = 10000;
Line 293... Line 292...
293
                   }
292
                   }
294
                }
293
                }
295
            else
294
            else
296
                {
295
                {
297
                 ROT_OFF;
296
                 ROT_OFF;
298
                                 if(!beeptime)
297
                                 if(!beeptime)
299
                                  {
298
                                  {
300
                                   FCFlags &= ~FCFLAG_I2CERR;
299
                                   VersionInfo.HardwareError[1] &= ~FC_ERROR1_I2C;
301
                                  }
300
                                  }
302
                }
301
                }
303
          if(!UpdateMotor)
302
          if(!UpdateMotor)
304
                   {
303
                   {
305
                        if(CalculateServoSignals) CalculateServo();
304
                        if(CalculateServoSignals) CalculateServo();
306
                        DatenUebertragung();
305
                        DatenUebertragung();
Line 309... Line 308...
309
                        {
308
                        {
310
                                static unsigned char second;
309
                                static unsigned char second;
311
                                timer += 20; // 20 ms interval
310
                                timer += 20; // 20 ms interval
312
                                if(MissingMotor)
311
                                if(MissingMotor)
313
                                 {
312
                                 {
314
                                  VersionInfo.HardwareError[1] |= DEFEKT_BL_MISSING;
313
                                  VersionInfo.HardwareError[1] |= FC_ERROR1_BL_MISSING;
315
                                  DebugOut.Status[1] |= 0x02; // BL-Error-Status
314
                                  DebugOut.Status[1] |= 0x02; // BL-Error-Status
316
                                 }
315
                                 }
317
                                 else
316
                                 else
318
                                 {
317
                                 {
319
                                   VersionInfo.HardwareError[1] &= ~DEFEKT_BL_MISSING;
318
                                   VersionInfo.HardwareError[1] &= ~FC_ERROR1_BL_MISSING;
320
                                   if(I2CTimeout > 6) DebugOut.Status[1] &= ~0x02; // BL-Error-Status
319
                                   if(I2CTimeout > 6) DebugOut.Status[1] &= ~0x02; // BL-Error-Status
321
                                 }  
320
                                 }
322
                                   
321
 
323
                            if(I2CTimeout > 6) VersionInfo.HardwareError[1] &= ~DEFEKT_I2C;
322
                            if(I2CTimeout > 6) VersionInfo.HardwareError[1] &= ~FC_ERROR1_I2C;
Line 324... Line 323...
324
 
323
 
325
                                if(PcZugriff) PcZugriff--;
324
                                if(PcZugriff) PcZugriff--;
326
                                else
325
                                else
327
                                {
326
                                {
Line 336... Line 335...
336
                                        }
335
                                        }
337
                                }
336
                                }
338
                                if(NaviDataOkay > 200)
337
                                if(NaviDataOkay > 200)
339
                                {
338
                                {
340
                                        NaviDataOkay--;
339
                                        NaviDataOkay--;
341
                                        FCFlags &= ~FCFLAG_SPI_RX_ERR;
-
 
342
                                        VersionInfo.HardwareError[1] &= ~DEFEKT_SPI_RX_ERR;
340
                                        VersionInfo.HardwareError[1] &= ~FC_ERROR1_SPI_RX;
343
                                }
341
                                }
344
                                else
342
                                else
345
                                {
343
                                {
346
                                        if(NC_Version.Compatible)
344
                                        if(NC_Version.Compatible)
347
                                         {
345
                                         {
348
                                                FCFlags |= FCFLAG_SPI_RX_ERR;
-
 
349
                                                VersionInfo.HardwareError[1] |= DEFEKT_SPI_RX_ERR;
346
                                                VersionInfo.HardwareError[1] |= FC_ERROR1_SPI_RX;
350
                       if(BeepMuster == 0xffff && MotorenEin)
347
                       if(BeepMuster == 0xffff && MotorenEin)
351
                                                {
348
                                                {
352
                                                        beeptime = 15000;
349
                                                        beeptime = 15000;
353
                                                        BeepMuster = 0xA800;
350
                                                        BeepMuster = 0xA800;
354
                                                }
351
                                                }
355
                                         }     
352
                                         }
356
                                        GPS_Nick = 0;
353
                                        GPS_Nick = 0;
357
                                        GPS_Roll = 0;
354
                                        GPS_Roll = 0;
358
                                        //if(!beeptime)
355
                                        //if(!beeptime)
359
                    FromNaviCtrl.CompassValue = -1;
356
                    FromNaviCtrl.CompassValue = -1;
360
                    NaviDataOkay = 0;
357
                    NaviDataOkay = 0;
361
                                }
358
                                }
362
                           if(UBat < BattLowVoltageWarning)
359
                           if(UBat < BattLowVoltageWarning)
363
                                {
360
                                {
364
                                        FCFlags |= FCFLAG_LOWBAT;
361
                                        FC_StatusFlags |= FC_STATUS_LOWBAT;
365
                                        if(BeepMuster == 0xffff)
362
                                        if(BeepMuster == 0xffff)
366
                                        {
363
                                        {
367
                                                beeptime = 6000;
364
                                                beeptime = 6000;
368
                                                BeepMuster = 0x0300;
365
                                                BeepMuster = 0x0300;
369
                                        }
366
                                        }
370
                                }
367
                                }
371
                                else if(!beeptime) FCFlags &= ~FCFLAG_LOWBAT;
368
                                else if(!beeptime) FC_StatusFlags &= ~FC_STATUS_LOWBAT;
Line 372... Line 369...
372
 
369
 
373
                                SPI_StartTransmitPacket();
370
                                SPI_StartTransmitPacket();
374
                                SendSPI = 4;
371
                                SendSPI = 4;
375
                                if(!MotorenEin) timer2 = 1450; // 0,5 Minuten aufrunden
372
                                if(!MotorenEin) timer2 = 1450; // 0,5 Minuten aufrunden