Subversion Repositories FlightCtrl

Rev

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

Rev 1420 Rev 1448
Line 5... Line 5...
5
//struct str_ToNaviCtrl_Version   ToNaviCtrl_Version;
5
//struct str_ToNaviCtrl_Version   ToNaviCtrl_Version;
6
//struct str_FromNaviCtrl_Version   FromNaviCtrl_Version;
6
//struct str_FromNaviCtrl_Version   FromNaviCtrl_Version;
7
struct str_ToNaviCtrl   ToNaviCtrl;
7
struct str_ToNaviCtrl   ToNaviCtrl;
8
struct str_FromNaviCtrl   FromNaviCtrl;
8
struct str_FromNaviCtrl   FromNaviCtrl;
9
struct str_FromNaviCtrl_Value FromNaviCtrl_Value;
9
struct str_FromNaviCtrl_Value FromNaviCtrl_Value;
10
struct str_SPI_VersionInfo SPI_VersionInfo;
10
struct str_SPI_VersionInfo NC_Version;
Line 11... Line 11...
11
 
11
 
12
unsigned char              SPI_BufferIndex;
12
unsigned char              SPI_BufferIndex;
Line 13... Line 13...
13
unsigned char              SPI_RxBufferIndex;
13
unsigned char              SPI_RxBufferIndex;
14
 
14
 
Line 15... Line 15...
15
volatile unsigned char     SPI_Buffer[sizeof(FromNaviCtrl)];
15
volatile unsigned char     SPI_Buffer[sizeof(FromNaviCtrl)];
16
unsigned char *SPI_TX_Buffer;
16
unsigned char *SPI_TX_Buffer;
Line 17... Line 17...
17
 
17
 
18
unsigned char SPITransferCompleted, SPI_ChkSum;
18
unsigned char SPITransferCompleted, SPI_ChkSum;
Line 19... Line 19...
19
unsigned char SPI_RxDataValid,NaviDataOkay = 0;
19
unsigned char SPI_RxDataValid,NaviDataOkay = 0;
Line 20... Line 20...
20
 
20
 
Line 38... Line 38...
38
  //SPDR = 0x00;  // dummy write
38
  //SPDR = 0x00;  // dummy write
Line 39... Line 39...
39
 
39
 
40
  ToNaviCtrl.Sync1 = 0xAA;
40
  ToNaviCtrl.Sync1 = 0xAA;
Line 41... Line 41...
41
  ToNaviCtrl.Sync2 = 0x83;
41
  ToNaviCtrl.Sync2 = 0x83;
42
 
42
 
43
  ToNaviCtrl.Command = SPI_CMD_USER;
43
  ToNaviCtrl.Command = SPI_FCCMD_USER;
44
  ToNaviCtrl.IntegralNick = 0;
44
  ToNaviCtrl.IntegralNick = 0;
45
  ToNaviCtrl.IntegralRoll = 0;
45
  ToNaviCtrl.IntegralRoll = 0;
Line 46... Line -...
46
  FromNaviCtrl_Value.SerialDataOkay = 0;
-
 
47
  SPI_RxDataValid = 0;
-
 
48
 
-
 
49
  SPI_VersionInfo.Major = VERSION_MAJOR;
-
 
50
  SPI_VersionInfo.Minor = VERSION_MINOR;
46
  FromNaviCtrl_Value.SerialDataOkay = 0;
Line 51... Line 47...
51
  SPI_VersionInfo.Patch = VERSION_PATCH;
47
  SPI_RxDataValid = 0;
52
  SPI_VersionInfo.Compatible = NC_SPI_COMPATIBLE;
48
 
53
}
49
}
Line 167... Line 163...
167
  NaviCntAcc = 0; NaviAccNick = 0; NaviAccRoll = 0;
163
  NaviCntAcc = 0; NaviAccNick = 0; NaviAccRoll = 0;
168
//  ToNaviCtrl.User8 = Parameter_UserParam8;
164
//  ToNaviCtrl.User8 = Parameter_UserParam8;
169
//  ToNaviCtrl.CalState = WinkelOut.CalcState;
165
//  ToNaviCtrl.CalState = WinkelOut.CalcState;
170
   switch(ToNaviCtrl.Command)  //
166
   switch(ToNaviCtrl.Command)  //
171
   {
167
   {
172
         case SPI_CMD_USER:
168
         case SPI_FCCMD_USER:
173
                                ToNaviCtrl.Param.Byte[0] = Parameter_UserParam1;
169
                                ToNaviCtrl.Param.Byte[0] = Parameter_UserParam1;
174
                                ToNaviCtrl.Param.Byte[1] = Parameter_UserParam2;
170
                                ToNaviCtrl.Param.Byte[1] = Parameter_UserParam2;
175
                                ToNaviCtrl.Param.Byte[2] = Parameter_UserParam3;
171
                                ToNaviCtrl.Param.Byte[2] = Parameter_UserParam3;
176
                                ToNaviCtrl.Param.Byte[3] = Parameter_UserParam4;
172
                                ToNaviCtrl.Param.Byte[3] = Parameter_UserParam4;
177
                                ToNaviCtrl.Param.Byte[4] = Parameter_UserParam5;
173
                                ToNaviCtrl.Param.Byte[4] = Parameter_UserParam5;
Line 183... Line 179...
183
                    ToNaviCtrl.Param.Byte[9] = (unsigned char) UBat;
179
                    ToNaviCtrl.Param.Byte[9] = (unsigned char) UBat;
184
                    ToNaviCtrl.Param.Byte[10] =(unsigned char) BattLowVoltageWarning;
180
                    ToNaviCtrl.Param.Byte[10] =(unsigned char) BattLowVoltageWarning;
185
                    ToNaviCtrl.Param.Byte[11] =(unsigned char) eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET]);
181
                    ToNaviCtrl.Param.Byte[11] =(unsigned char) eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET]);
186
        break;
182
        break;
Line 187... Line 183...
187
 
183
 
188
         case SPI_CMD_PARAMETER1:
184
         case SPI_FCCMD_PARAMETER1:
189
                                ToNaviCtrl.Param.Byte[0] = EE_Parameter.NaviGpsModeControl;     // Parameters for the Naviboard
185
                                ToNaviCtrl.Param.Byte[0] = EE_Parameter.NaviGpsModeControl;     // Parameters for the Naviboard
190
                                ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviGpsGain;
186
                                ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviGpsGain;
191
                                ToNaviCtrl.Param.Byte[2] = EE_Parameter.NaviGpsP;
187
                                ToNaviCtrl.Param.Byte[2] = EE_Parameter.NaviGpsP;
192
                                ToNaviCtrl.Param.Byte[3] = EE_Parameter.NaviGpsI;
188
                                ToNaviCtrl.Param.Byte[3] = EE_Parameter.NaviGpsI;
Line 198... Line 194...
198
                ToNaviCtrl.Param.Byte[9] = EE_Parameter.NaviWindCorrection;
194
                ToNaviCtrl.Param.Byte[9] = EE_Parameter.NaviWindCorrection;
199
                ToNaviCtrl.Param.Byte[10] = EE_Parameter.NaviSpeedCompensation;
195
                ToNaviCtrl.Param.Byte[10] = EE_Parameter.NaviSpeedCompensation;
200
                                ToNaviCtrl.Param.Byte[11] = EE_Parameter.NaviAngleLimitation;
196
                                ToNaviCtrl.Param.Byte[11] = EE_Parameter.NaviAngleLimitation;
201
            break;
197
            break;
Line 202... Line 198...
202
 
198
 
203
         case SPI_CMD_STICK:
199
         case SPI_FCCMD_STICK:
204
              cli();
200
              cli();
205
                tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]];  if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
201
                tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]];  if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
206
                                ToNaviCtrl.Param.Byte[0] = (char) tmp;
202
                                ToNaviCtrl.Param.Byte[0] = (char) tmp;
207
                tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
203
                tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
Line 218... Line 214...
218
                                ToNaviCtrl.Param.Byte[8] = (unsigned char) Poti[4];
214
                                ToNaviCtrl.Param.Byte[8] = (unsigned char) Poti[4];
219
                                ToNaviCtrl.Param.Byte[9] = (unsigned char) Poti[5];
215
                                ToNaviCtrl.Param.Byte[9] = (unsigned char) Poti[5];
220
                                ToNaviCtrl.Param.Byte[10] = (unsigned char) Poti[6];
216
                                ToNaviCtrl.Param.Byte[10] = (unsigned char) Poti[6];
221
                                ToNaviCtrl.Param.Byte[11] = (unsigned char) Poti[7];
217
                                ToNaviCtrl.Param.Byte[11] = (unsigned char) Poti[7];
222
                        break;
218
                        break;
223
                case SPI_CMD_MISC:
219
                case SPI_FCCMD_MISC:
224
                        if(WinkelOut.CalcState > 5)
220
                        if(WinkelOut.CalcState > 5)
225
                        {
221
                        {
226
                                WinkelOut.CalcState = 0;
222
                                WinkelOut.CalcState = 0;
227
                                ToNaviCtrl.Param.Byte[0] = 5;
223
                                ToNaviCtrl.Param.Byte[0] = 5;
228
                        }
224
                        }
Line 235... Line 231...
235
                        ToNaviCtrl.Param.Byte[8] = EE_Parameter.NaviGpsDLimit;
231
                        ToNaviCtrl.Param.Byte[8] = EE_Parameter.NaviGpsDLimit;
236
            ToNaviCtrl.Param.Byte[9] = (unsigned char) SenderOkay;
232
            ToNaviCtrl.Param.Byte[9] = (unsigned char) SenderOkay;
237
            ToNaviCtrl.Param.Byte[10] = (unsigned char) SenderRSSI;
233
            ToNaviCtrl.Param.Byte[10] = (unsigned char) SenderRSSI;
238
                        ToNaviCtrl.Param.Byte[11] = DebugOut.Analog[7] / 4; //GasMischanteil
234
                        ToNaviCtrl.Param.Byte[11] = DebugOut.Analog[7] / 4; //GasMischanteil
239
                        break;
235
                        break;
240
                case SPI_CMD_VERSION:
236
                case SPI_FCCMD_VERSION:
241
                        ToNaviCtrl.Param.Byte[0] = SPI_VersionInfo.Major;
237
                        ToNaviCtrl.Param.Byte[0] = VERSION_MAJOR;
242
                        ToNaviCtrl.Param.Byte[1] = SPI_VersionInfo.Minor;
238
                        ToNaviCtrl.Param.Byte[1] = VERSION_MINOR;
243
                        ToNaviCtrl.Param.Byte[2] = SPI_VersionInfo.Patch;
239
                        ToNaviCtrl.Param.Byte[2] = VERSION_PATCH;
244
                        ToNaviCtrl.Param.Byte[3] = SPI_VersionInfo.Compatible;
240
                        ToNaviCtrl.Param.Byte[3] = NC_SPI_COMPATIBLE;
245
                        ToNaviCtrl.Param.Byte[4] = PlatinenVersion;
241
                        ToNaviCtrl.Param.Byte[4] = PlatinenVersion;
246
                break;
242
                break;
Line 247... Line 243...
247
 
243
 
248
            case SPI_CMD_SERVOS:
244
            case SPI_FCCMD_SERVOS:
249
                ToNaviCtrl.Param.Byte[0] = EE_Parameter.ServoNickRefresh;     // Parameters for the Servo Control
245
                ToNaviCtrl.Param.Byte[0] = EE_Parameter.ServoNickRefresh;     // Parameters for the Servo Control
250
                        ToNaviCtrl.Param.Byte[1] = EE_Parameter.ServoCompInvert;
246
                        ToNaviCtrl.Param.Byte[1] = EE_Parameter.ServoCompInvert;
251
                        ToNaviCtrl.Param.Byte[2] = Parameter_ServoNickControl;
247
                        ToNaviCtrl.Param.Byte[2] = Parameter_ServoNickControl;
252
                        ToNaviCtrl.Param.Byte[3] = EE_Parameter.ServoNickComp;
248
                        ToNaviCtrl.Param.Byte[3] = EE_Parameter.ServoNickComp;
Line 272... Line 268...
272
 
268
 
Line 273... Line 269...
273
    if(FromNaviCtrl.BeepTime > beeptime && !WinkelOut.CalcState) beeptime = FromNaviCtrl.BeepTime;
269
    if(FromNaviCtrl.BeepTime > beeptime && !WinkelOut.CalcState) beeptime = FromNaviCtrl.BeepTime;
274
 
270
 
275
          switch (FromNaviCtrl.Command)
271
          switch (FromNaviCtrl.Command)
276
          {
272
          {
277
            case SPI_KALMAN:
273
            case SPI_NCCMD_KALMAN:
278
                        FromNaviCtrl_Value.Kalman_K = FromNaviCtrl.Param.sByte[0];
274
                        FromNaviCtrl_Value.Kalman_K = FromNaviCtrl.Param.sByte[0];
279
                        FromNaviCtrl_Value.Kalman_MaxFusion = FromNaviCtrl.Param.sByte[1];
275
                        FromNaviCtrl_Value.Kalman_MaxFusion = FromNaviCtrl.Param.sByte[1];
280
                        FromNaviCtrl_Value.Kalman_MaxDrift = FromNaviCtrl.Param.sByte[2];
276
                        FromNaviCtrl_Value.Kalman_MaxDrift = FromNaviCtrl.Param.sByte[2];
281
                        FromNaviCtrl_Value.SerialDataOkay = FromNaviCtrl.Param.Byte[3];
277
                        FromNaviCtrl_Value.SerialDataOkay = FromNaviCtrl.Param.Byte[3];
-
 
278
                        FromNaviCtrl_Value.GpsZ = FromNaviCtrl.Param.Byte[4];
-
 
279
                        break;
-
 
280
 
-
 
281
                case SPI_NCCMD_VERSION:
-
 
282
                        NC_Version.Major = FromNaviCtrl.Param.Byte[0];
-
 
283
                        NC_Version.Minor = FromNaviCtrl.Param.Byte[1];
-
 
284
                        NC_Version.Patch = FromNaviCtrl.Param.Byte[2];
-
 
285
                        NC_Version.Compatible = FromNaviCtrl.Param.Byte[3];
282
                        FromNaviCtrl_Value.GpsZ = FromNaviCtrl.Param.Byte[4];
286
                        NC_Version.Hardware = FromNaviCtrl.Param.Byte[4];
283
                        break;
287
                        break;
284
                default:
288
                default:
285
                  break;
289
                  break;
286
          }
290
          }