Subversion Repositories FlightCtrl

Rev

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

Rev 1316 Rev 1320
Line 157... Line 157...
157
 
157
 
158
//------------------------------------------------------
158
//------------------------------------------------------
159
void UpdateSPI_Buffer(void)
159
void UpdateSPI_Buffer(void)
160
{
160
{
161
  signed int tmp;
-
 
162
  cli();
-
 
163
 
161
  signed int tmp;
164
  ToNaviCtrl.IntegralNick = (int) (IntegralNick / (long)(EE_Parameter.GyroAccFaktor * 4));
162
  ToNaviCtrl.IntegralNick = (int) (IntegralNick / (long)(EE_Parameter.GyroAccFaktor * 4));
165
  ToNaviCtrl.IntegralRoll = (int) (IntegralRoll / (long)(EE_Parameter.GyroAccFaktor * 4));
163
  ToNaviCtrl.IntegralRoll = (int) (IntegralRoll / (long)(EE_Parameter.GyroAccFaktor * 4));
166
  ToNaviCtrl.GyroCompass = (10 * ErsatzKompass) / GIER_GRAD_FAKTOR;
164
  ToNaviCtrl.GyroCompass = (10 * ErsatzKompass) / GIER_GRAD_FAKTOR;
167
  ToNaviCtrl.AccNick = ((int) ACC_AMPLIFY * (NaviAccNick / NaviCntAcc))/4;
165
  ToNaviCtrl.AccNick = ((int) ACC_AMPLIFY * (NaviAccNick / NaviCntAcc))/4;
168
  ToNaviCtrl.AccRoll = ((int) ACC_AMPLIFY * (NaviAccRoll / NaviCntAcc))/4;
166
  ToNaviCtrl.AccRoll = ((int) ACC_AMPLIFY * (NaviAccRoll / NaviCntAcc))/4;
169
  NaviCntAcc = 0; NaviAccNick = 0; NaviAccRoll = 0;
167
  NaviCntAcc = 0; NaviAccNick = 0; NaviAccRoll = 0;
170
//  ToNaviCtrl.User8 = Parameter_UserParam8;
168
//  ToNaviCtrl.User8 = Parameter_UserParam8;
171
//  ToNaviCtrl.CalState = WinkelOut.CalcState;
-
 
172
 
169
//  ToNaviCtrl.CalState = WinkelOut.CalcState;
173
   switch(ToNaviCtrl.Command)  //
170
   switch(ToNaviCtrl.Command)  //
174
   {
171
   {
175
         case SPI_CMD_USER:
172
         case SPI_CMD_USER:
176
                                ToNaviCtrl.Param.Byte[0] = Parameter_UserParam1;
173
                                ToNaviCtrl.Param.Byte[0] = Parameter_UserParam1;
Line 202... Line 199...
202
                ToNaviCtrl.Param.Byte[10] = EE_Parameter.NaviSpeedCompensation;
199
                ToNaviCtrl.Param.Byte[10] = EE_Parameter.NaviSpeedCompensation;
203
                                ToNaviCtrl.Param.Byte[11] = EE_Parameter.NaviAngleLimitation;
200
                                ToNaviCtrl.Param.Byte[11] = EE_Parameter.NaviAngleLimitation;
204
            break;
201
            break;
Line 205... Line 202...
205
 
202
 
-
 
203
         case SPI_CMD_STICK:
206
         case SPI_CMD_STICK:
204
              cli();
207
                tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]];  if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
205
                tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]];  if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
208
                                ToNaviCtrl.Param.Byte[0] = (char) tmp;
206
                                ToNaviCtrl.Param.Byte[0] = (char) tmp;
209
                tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
207
                tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
210
                                ToNaviCtrl.Param.Byte[1] = (char) tmp;
208
                                ToNaviCtrl.Param.Byte[1] = (char) tmp;
211
                tmp = PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
209
                tmp = PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
212
                                ToNaviCtrl.Param.Byte[2] = (char) tmp;
210
                                ToNaviCtrl.Param.Byte[2] = (char) tmp;
-
 
211
                tmp = PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
213
                tmp = PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
212
              sei();
214
                                ToNaviCtrl.Param.Byte[3] = (char) tmp;
213
                                ToNaviCtrl.Param.Byte[3] = (char) tmp;
215
                                ToNaviCtrl.Param.Byte[4] = (unsigned char) Poti1;
214
                                ToNaviCtrl.Param.Byte[4] = (unsigned char) Poti1;
216
                                ToNaviCtrl.Param.Byte[5] = (unsigned char) Poti2;
215
                                ToNaviCtrl.Param.Byte[5] = (unsigned char) Poti2;
217
                                ToNaviCtrl.Param.Byte[6] = (unsigned char) Poti3;
216
                                ToNaviCtrl.Param.Byte[6] = (unsigned char) Poti3;
218
                    ToNaviCtrl.Param.Byte[7] = (unsigned char) Poti4;
217
                    ToNaviCtrl.Param.Byte[7] = (unsigned char) Poti4;
219
                    ToNaviCtrl.Param.Byte[8] = (unsigned char) SenderOkay;
218
                    ToNaviCtrl.Param.Byte[8] = (unsigned char) SenderOkay;
220
                    ToNaviCtrl.Param.Byte[9] = (unsigned char) SenderRSSI;
219
                    ToNaviCtrl.Param.Byte[9] = (unsigned char) SenderRSSI;
221
                                ToNaviCtrl.Param.Byte[10] = DebugOut.Analog[7] / 4;
220
                                ToNaviCtrl.Param.Byte[10] = DebugOut.Analog[7] / 4; //GasMischanteil
222
                        break;
-
 
223
 
221
                        break;
224
                case SPI_CMD_MISC:
222
                case SPI_CMD_MISC:
225
                        if(WinkelOut.CalcState > 5)
223
                        if(WinkelOut.CalcState > 5)
226
                        {
224
                        {
227
                                WinkelOut.CalcState = 0;
225
                                WinkelOut.CalcState = 0;
228
                                ToNaviCtrl.Param.Byte[0] = 5;
226
                                ToNaviCtrl.Param.Byte[0] = 5;
229
                        }
227
                        }
230
                        else ToNaviCtrl.Param.Byte[0] = WinkelOut.CalcState;
228
                        else ToNaviCtrl.Param.Byte[0] = WinkelOut.CalcState;
231
                        ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviPH_LoginTime;
229
                        ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviPH_LoginTime;
232
                        ToNaviCtrl.Param.Int[1] = (int)(HoehenWert/5);
230
                        ToNaviCtrl.Param.Int[1] = DebugOut.Analog[5];// = HoehenWert/5;
233
                        ToNaviCtrl.Param.Int[2] = (int)(SollHoehe/5);
231
                        ToNaviCtrl.Param.Int[2] = (int)(SollHoehe/5);
234
                        ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviGpsPLimit;
232
                        ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviGpsPLimit;
235
                        ToNaviCtrl.Param.Byte[7] = EE_Parameter.NaviGpsILimit;
233
                        ToNaviCtrl.Param.Byte[7] = EE_Parameter.NaviGpsILimit;
236
                        ToNaviCtrl.Param.Byte[8] = EE_Parameter.NaviGpsDLimit;
234
                        ToNaviCtrl.Param.Byte[8] = EE_Parameter.NaviGpsDLimit;
Line 256... Line 254...
256
                        ToNaviCtrl.Param.Byte[8] = EE_Parameter.ServoRollMin;
254
                        ToNaviCtrl.Param.Byte[8] = EE_Parameter.ServoRollMin;
257
                        ToNaviCtrl.Param.Byte[9] = EE_Parameter.ServoRollMax;
255
                        ToNaviCtrl.Param.Byte[9] = EE_Parameter.ServoRollMax;
258
                break;
256
                break;
259
        }
257
        }
Line 260... Line -...
260
 
-
 
261
  sei();
-
 
262
 
258
 
263
  if(SPI_RxDataValid)
259
  if(SPI_RxDataValid)
264
  {
260
  {
265
   if(abs(FromNaviCtrl.GPS_Nick) < 512 && abs(FromNaviCtrl.GPS_Roll) < 512 && (EE_Parameter.GlobalConfig & CFG_GPS_AKTIV))
261
   if(abs(FromNaviCtrl.GPS_Nick) < 512 && abs(FromNaviCtrl.GPS_Roll) < 512 && (EE_Parameter.GlobalConfig & CFG_GPS_AKTIV))
266
   {
262
   {