Rev 331 | Rev 342 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 331 | Rev 338 | ||
---|---|---|---|
Line 78... | Line 78... | ||
78 | //communication packets |
78 | //communication packets |
79 | FromFlightCtrl_t FromFlightCtrl; |
79 | FromFlightCtrl_t FromFlightCtrl; |
80 | ToFlightCtrl_t ToFlightCtrl; |
80 | ToFlightCtrl_t ToFlightCtrl; |
81 | #define SPI0_TIMEOUT 500 // 500ms |
81 | #define SPI0_TIMEOUT 500 // 500ms |
82 | volatile u32 SPI0_Timeout = 0; |
82 | volatile u32 SPI0_Timeout = 0; |
- | 83 | u8 Logging_FCStatusFlags1 = 0,Logging_FCStatusFlags2 = 0; |
|
Line 83... | Line 84... | ||
83 | 84 | ||
84 | // tx packet buffer |
85 | // tx packet buffer |
85 | #define SPI_TXBUFFER_LEN (2 + sizeof(ToFlightCtrl)) // 2 bytes at start are for synchronization |
86 | #define SPI_TXBUFFER_LEN (2 + sizeof(ToFlightCtrl)) // 2 bytes at start are for synchronization |
86 | volatile u8 SPI_TxBuffer[SPI_TXBUFFER_LEN]; |
87 | volatile u8 SPI_TxBuffer[SPI_TXBUFFER_LEN]; |
Line 110... | Line 111... | ||
110 | u8 FromFC_VarioCharacter = ' '; |
111 | u8 FromFC_VarioCharacter = ' '; |
111 | u8 GPS_Aid_StickMultiplikator = 0; |
112 | u8 GPS_Aid_StickMultiplikator = 0; |
112 | u8 NC_GPS_ModeCharacter = ' '; |
113 | u8 NC_GPS_ModeCharacter = ' '; |
113 | u8 FCCalibActive = 0; |
114 | u8 FCCalibActive = 0; |
114 | u8 FC_is_Calibrated = 0; |
115 | u8 FC_is_Calibrated = 0; |
115 | - | ||
- | 116 | u8 MotorCurrent[12]; |
|
- | 117 | u8 MotorTemperature[12]; |
|
- | 118 | u8 BL_MinOfMaxPWM; // indication if all BL-controllers run on full power |
|
- | 119 | u32 FC_I2C_ErrorConter; |
|
116 | SPI_Version_t FC_Version; |
120 | SPI_Version_t FC_Version; |
Line 117... | Line 121... | ||
117 | 121 | ||
118 | //-------------------------------------------------------------- |
122 | //-------------------------------------------------------------- |
119 | void SSP0_IRQHandler(void) |
123 | void SSP0_IRQHandler(void) |
Line 336... | Line 340... | ||
336 | ToFlightCtrl.Param.Byte[0] = VERSION_MAJOR; |
340 | ToFlightCtrl.Param.Byte[0] = VERSION_MAJOR; |
337 | ToFlightCtrl.Param.Byte[1] = VERSION_MINOR; |
341 | ToFlightCtrl.Param.Byte[1] = VERSION_MINOR; |
338 | ToFlightCtrl.Param.Byte[2] = VERSION_PATCH; |
342 | ToFlightCtrl.Param.Byte[2] = VERSION_PATCH; |
339 | ToFlightCtrl.Param.Byte[3] = FC_SPI_COMPATIBLE; |
343 | ToFlightCtrl.Param.Byte[3] = FC_SPI_COMPATIBLE; |
340 | ToFlightCtrl.Param.Byte[4] = Version_HW; |
344 | ToFlightCtrl.Param.Byte[4] = Version_HW; |
341 | ToFlightCtrl.Param.Byte[5] = DebugOut.Status[0]; |
345 | ToFlightCtrl.Param.Byte[5] = DebugOut.StatusGreen; |
342 | ToFlightCtrl.Param.Byte[6] = DebugOut.Status[1]; |
346 | ToFlightCtrl.Param.Byte[6] = DebugOut.StatusRed; |
343 | ToFlightCtrl.Param.Byte[7] = ErrorCode; |
347 | ToFlightCtrl.Param.Byte[7] = ErrorCode; |
344 | ToFlightCtrl.Param.Byte[8] = NC_GPS_ModeCharacter; |
348 | ToFlightCtrl.Param.Byte[8] = NC_GPS_ModeCharacter; |
345 | ToFlightCtrl.Param.Byte[9] = SerialLinkOkay; |
349 | ToFlightCtrl.Param.Byte[9] = SerialLinkOkay; |
346 | break; |
350 | break; |
Line 526... | Line 530... | ||
526 | if(FC.StatusFlags & FC_STATUS_CALIBRATE && !FCCalibActive) |
530 | if(FC.StatusFlags & FC_STATUS_CALIBRATE && !FCCalibActive) |
527 | { |
531 | { |
528 | HeadFreeStartAngle = Compass_Heading * 10; |
532 | HeadFreeStartAngle = Compass_Heading * 10; |
529 | Compass_Init(); |
533 | Compass_Init(); |
530 | FCCalibActive = 10; |
534 | FCCalibActive = 10; |
- | 535 | FC_is_Calibrated = 0; |
|
531 | } |
536 | } |
532 | else |
537 | else |
533 | { |
538 | { |
534 | if(FCCalibActive) if(--FCCalibActive == 0) FC_is_Calibrated = 1; |
539 | if(FCCalibActive) if(--FCCalibActive == 0) FC_is_Calibrated = 1; |
535 | } |
540 | } |
Line 557... | Line 562... | ||
557 | Parameter.ActiveSetting = FromFlightCtrl.Param.Byte[9]; |
562 | Parameter.ActiveSetting = FromFlightCtrl.Param.Byte[9]; |
558 | DebugOut.Analog[5] = FC.StatusFlags; |
563 | DebugOut.Analog[5] = FC.StatusFlags; |
559 | FC.StatusFlags2 = FromFlightCtrl.Param.Byte[11]; |
564 | FC.StatusFlags2 = FromFlightCtrl.Param.Byte[11]; |
560 | NaviData.FCStatusFlags = FC.StatusFlags; |
565 | NaviData.FCStatusFlags = FC.StatusFlags; |
561 | NaviData.FCStatusFlags2 = FC.StatusFlags2; |
566 | NaviData.FCStatusFlags2 = FC.StatusFlags2; |
- | 567 | Logging_FCStatusFlags1 |= FC.StatusFlags; |
|
- | 568 | Logging_FCStatusFlags2 |= FC.StatusFlags2; |
|
562 | Parameter.ComingHomeAltitude = FromFlightCtrl.Param.Byte[10]; |
569 | Parameter.ComingHomeAltitude = FromFlightCtrl.Param.Byte[10]; |
563 | break; |
570 | break; |
Line 564... | Line 571... | ||
564 | 571 | ||
565 | case SPI_FCCMD_ACCU: |
572 | case SPI_FCCMD_ACCU: |
Line 568... | Line 575... | ||
568 | FC.BAT_Voltage = FromFlightCtrl.Param.Byte[4]; |
575 | FC.BAT_Voltage = FromFlightCtrl.Param.Byte[4]; |
569 | Parameter.LowVoltageWarning = FromFlightCtrl.Param.Byte[5]; |
576 | Parameter.LowVoltageWarning = FromFlightCtrl.Param.Byte[5]; |
570 | FromFC_VarioCharacter = FromFlightCtrl.Param.Byte[6]; |
577 | FromFC_VarioCharacter = FromFlightCtrl.Param.Byte[6]; |
571 | Parameter.GlobalConfig = FromFlightCtrl.Param.Byte[7]; |
578 | Parameter.GlobalConfig = FromFlightCtrl.Param.Byte[7]; |
572 | Parameter.ExtraConfig = FromFlightCtrl.Param.Byte[8]; |
579 | Parameter.ExtraConfig = FromFlightCtrl.Param.Byte[8]; |
- | 580 | MotorTemperature[FromFlightCtrl.Param.Byte[9]] = FromFlightCtrl.Param.Byte[10]; |
|
- | 581 | MotorCurrent[FromFlightCtrl.Param.Byte[9]] = FromFlightCtrl.Param.Byte[11]; |
|
573 | if(FromFC_VarioCharacter == '+' || FromFC_VarioCharacter == '-') // manual setpoint clears the NC-Parameter command |
582 | if(FromFC_VarioCharacter == '+' || FromFC_VarioCharacter == '-') // manual setpoint clears the NC-Parameter command |
574 | { |
583 | { |
575 | NCParams_ClearValue(NCPARAMS_ALTITUDE_RATE); |
584 | NCParams_ClearValue(NCPARAMS_ALTITUDE_RATE); |
576 | } |
585 | } |
577 | NaviData.UBat = FC.BAT_Voltage; |
586 | NaviData.UBat = FC.BAT_Voltage; |
Line 641... | Line 650... | ||
641 | ServoParams.NickMax = FromFlightCtrl.Param.Byte[5]; |
650 | ServoParams.NickMax = FromFlightCtrl.Param.Byte[5]; |
642 | ServoParams.RollControl = FromFlightCtrl.Param.Byte[6]; |
651 | ServoParams.RollControl = FromFlightCtrl.Param.Byte[6]; |
643 | ServoParams.RollComp = FromFlightCtrl.Param.Byte[7]; |
652 | ServoParams.RollComp = FromFlightCtrl.Param.Byte[7]; |
644 | ServoParams.RollMin = FromFlightCtrl.Param.Byte[8]; |
653 | ServoParams.RollMin = FromFlightCtrl.Param.Byte[8]; |
645 | ServoParams.RollMax = FromFlightCtrl.Param.Byte[9]; |
654 | ServoParams.RollMax = FromFlightCtrl.Param.Byte[9]; |
- | 655 | BL_MinOfMaxPWM = FromFlightCtrl.Param.Byte[10]; |
|
646 | break; |
656 | break; |
Line 647... | Line 657... | ||
647 | 657 | ||
648 | case SPI_FCCMD_VERSION: |
658 | case SPI_FCCMD_VERSION: |
649 | FC_Version.Major = FromFlightCtrl.Param.Byte[0]; |
659 | FC_Version.Major = FromFlightCtrl.Param.Byte[0]; |
Line 655... | Line 665... | ||
655 | FC.Error[1] |= FromFlightCtrl.Param.Byte[6]; |
665 | FC.Error[1] |= FromFlightCtrl.Param.Byte[6]; |
656 | FC.Error[2] |= FromFlightCtrl.Param.Byte[7]; |
666 | FC.Error[2] |= FromFlightCtrl.Param.Byte[7]; |
657 | FC.Error[3] |= FromFlightCtrl.Param.Byte[8]; |
667 | FC.Error[3] |= FromFlightCtrl.Param.Byte[8]; |
658 | FC.Error[4] |= FromFlightCtrl.Param.Byte[9]; |
668 | FC.Error[4] |= FromFlightCtrl.Param.Byte[9]; |
659 | Parameter.OrientationAngle = FromFlightCtrl.Param.Byte[10]; |
669 | Parameter.OrientationAngle = FromFlightCtrl.Param.Byte[10]; |
660 | DebugOut.Status[0] |= 0x01; // status of FC Present |
670 | DebugOut.StatusGreen |= AMPEL_FC; // status of FC Present |
661 | DebugOut.Status[0] |= 0x02; // status of BL Present |
671 | DebugOut.StatusGreen |= AMPEL_BL; // status of BL Present |
662 | if(FC.Error[0] || FC.Error[1] || FC.Error[2] || FC.Error[3] || FC.Error[4]) DebugOut.Status[1] |= 0x01; |
672 | if(FC.Error[0] || FC.Error[1] || FC.Error[2] || FC.Error[3] || FC.Error[4]) DebugOut.StatusRed |= AMPEL_FC; |
663 | else DebugOut.Status[1] &= ~0x01; |
673 | else DebugOut.StatusRed &= ~AMPEL_FC; |
664 | break; |
674 | break; |
665 | default: |
675 | default: |
666 | break; |
676 | break; |
667 | } |
677 | } |