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 |