Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 719 → Rev 720

/trunk/fc.c
339,7 → 339,7
if(Poti4 < 0) Poti4 = 0; else if(Poti4 > 255) Poti4 = 255;
 
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
}
 
//############################################################################
787,7 → 787,7
if((MaxStickNick > 15) || (MaxStickRoll > 15) || (abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25))
{
LageKorrekturNick /= 2;
LageKorrekturNick /= 2;
LageKorrekturRoll /= 2;
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
810,16 → 810,23
if(GierGyroFehler > ABGLEICH_ANZAHL/2) AdNeutralGier++;
if(GierGyroFehler <-ABGLEICH_ANZAHL/2) AdNeutralGier--;
 
DebugOut.Analog[22] = MittelIntegralRoll / 26;
 
GierGyroFehler = 0;
DebugOut.Analog[17] = IntegralAccNick / 26;
 
 
/*DebugOut.Analog[17] = IntegralAccNick / 26;
DebugOut.Analog[18] = IntegralAccRoll / 26;
DebugOut.Analog[19] = IntegralFehlerNick;// / 26;
DebugOut.Analog[20] = IntegralFehlerRoll;// / 26;
DebugOut.Analog[21] = MittelIntegralNick / 26;
DebugOut.Analog[22] = MittelIntegralRoll / 26;
*/
//DebugOut.Analog[21] = MittelIntegralNick / 26;
//MittelIntegralRoll = MittelIntegralRoll;
//DebugOut.Analog[28] = ausgleichNick;
/*
DebugOut.Analog[29] = ausgleichRoll;
DebugOut.Analog[30] = LageKorrekturRoll * 10;
*/
 
#define FEHLER_LIMIT (ABGLEICH_ANZAHL * 4)
#define FEHLER_LIMIT2 (ABGLEICH_ANZAHL * 16)
891,9 → 898,10
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp;
if(IntegralFehlerRoll > FEHLER_LIMIT) AdNeutralRoll += cnt;
if(IntegralFehlerRoll < -FEHLER_LIMIT) AdNeutralRoll -= cnt;
DebugOut.Analog[27] = ausgleichRoll;
/*DebugOut.Analog[27] = ausgleichRoll;
DebugOut.Analog[23] = AdNeutralNick;//10*(AdNeutralNick - StartNeutralNick);
DebugOut.Analog[24] = 10*(AdNeutralRoll - StartNeutralRoll);
*/
}
else
{
992,6 → 1000,9
DebugOut.Analog[10] = SenderOkay;
DebugOut.Analog[16] = Mittelwert_AccHoch;
 
DebugOut.Analog[30] = GPS_Nick;
DebugOut.Analog[31] = GPS_Roll;
 
/* DebugOut.Analog[16] = motor_rx[0];
DebugOut.Analog[17] = motor_rx[1];
DebugOut.Analog[18] = motor_rx[2];
1028,10 → 1039,11
else MesswertRoll = IntegralRoll * IntegralFaktor + MesswertRoll * GyroFaktor;
MesswertGier = MesswertGier * (2 * GyroFaktor) + Integral_Gier * IntegralFaktor / 2;
 
/*
DebugOut.Analog[25] = IntegralRoll * IntegralFaktor;
DebugOut.Analog[31] = StickRoll;// / (26*IntegralFaktor);
DebugOut.Analog[28] = MesswertRoll;
 
*/
// Maximalwerte abfangen
#define MAX_SENSOR 2048
if(MesswertNick > MAX_SENSOR) MesswertNick = MAX_SENSOR;
/trunk/main.c
185,12 → 185,12
I2CTimeout = 5000;
while (1)
{
if(UpdateMotor) // ReglerIntervall
if(UpdateMotor) // ReglerIntervall
{
UpdateMotor=0;
//PORTD |= 0x08;
MotorRegler();
 
//PORTD &= ~0x08;
SendMotorData();
ROT_OFF;
237,7 → 237,7
}
}
SPI_StartTransmitPacket(SPI_CMD_VALUE);//#
timer = SetDelay(50);
timer = SetDelay(100);
}
//if(UpdateMotor) DebugOut.Analog[26]++;
}
/trunk/spi.c
14,6 → 14,8
unsigned char *SPI_TX_Buffer, *ToNaviCtrl_Chksum;
 
unsigned char SPITransferCompleted, SPI_ChkSum;
unsigned char SPI_RxDataValid;
 
#ifdef USE_SPI_COMMUNICATION
 
//------------------------------------------------------
30,8 → 32,8
//SPDR = 0x00; // dummy write
ToNaviCtrl_Value.Sync1 = 0x81;
ToNaviCtrl_Value.Sync2 = 0x55;
ToNaviCtrl_Value.Sync1 = 0xAA;
ToNaviCtrl_Value.Sync2 = 0x83;
ToNaviCtrl_Value.Command = SPI_CMD_VALUE;
ToNaviCtrl_Value.IntegralNick = 12345;
39,7 → 41,8
ToNaviCtrl_Value.StickNick = 100;
ToNaviCtrl_Value.StickRoll = 150;//(char) StickRoll;
ToNaviCtrl_Value.StickGier = 200;//(char) StickGier;
SPI_RxDataValid = 0;
}
 
//------------------------------------------------------
125,9 → 128,9
memcpy(ptr, (unsigned char *) SPI_Buffer, sizeof(SPI_Buffer));
DebugOut.Analog[20]++;
SPI_RxDataValid = 1;
}
else DebugOut.Analog[21]++;
else SPI_RxDataValid = 0;
SPI_RXState = 0;
}
166,20 → 169,33
ToNaviCtrl_Value.StickRoll = 5;//(char) StickRoll;
ToNaviCtrl_Value.StickGier = 6;//(char) StickGier;
ToNaviCtrl_Value.GyroCompass = ErsatzKompass / GIER_GRAD_FAKTOR;
ToNaviCtrl_Value.User1 = EE_Parameter.UserParam1;
ToNaviCtrl_Value.User2 = EE_Parameter.UserParam2;
ToNaviCtrl_Value.User3 = EE_Parameter.UserParam3;
ToNaviCtrl_Value.User4 = EE_Parameter.UserParam4;
ToNaviCtrl_Value.User5 = EE_Parameter.UserParam5;
ToNaviCtrl_Value.User6 = EE_Parameter.UserParam6;
ToNaviCtrl_Value.User7 = EE_Parameter.UserParam7;
ToNaviCtrl_Value.User8 = EE_Parameter.UserParam8;
ToNaviCtrl_Value.User1 = Parameter_UserParam1;
ToNaviCtrl_Value.User2 = Parameter_UserParam2;
ToNaviCtrl_Value.User3 = Parameter_UserParam3;
ToNaviCtrl_Value.User4 = Parameter_UserParam4;
ToNaviCtrl_Value.User5 = Parameter_UserParam5;
ToNaviCtrl_Value.User6 = Parameter_UserParam6;
ToNaviCtrl_Value.User7 = Parameter_UserParam7;
ToNaviCtrl_Value.User8 = Parameter_UserParam8;
sei();
DebugOut.Analog[30] = FromNaviCtrl_Value.GPS_Nick;
DebugOut.Analog[31] = FromNaviCtrl_Value.GPS_Roll;
KompassValue = FromNaviCtrl_Value.CompassValue;
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
if (SPI_RxDataValid)
{
GPS_Nick = FromNaviCtrl_Value.GPS_Nick;
GPS_Roll = FromNaviCtrl_Value.GPS_Roll;
KompassValue = FromNaviCtrl_Value.CompassValue;
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
if (FromNaviCtrl_Value.BeepTime != 0) beeptime = FromNaviCtrl_Value.BeepTime;
}
else
{
KompassValue = 0;
KompassRichtung = 0;
GPS_Nick = 0;
GPS_Roll = 0;
}
}
 
#endif
/trunk/spi.h
89,7 → 89,8
signed int GPS_Height;
signed int CompassValue;
signed int Status;
signed int d0;
unsigned char BeepTime;
unsigned char d0;
signed int d1;
signed int d2;
unsigned char Chksum;
/trunk/uart.c
54,21 → 54,21
"Motor_Links ",
"Motor_Rechts ", //15
"Acc_Z ",
"MittelAccNick ",
"MittelAccRoll ",
"IntegralErrNick ",
"IntegralErrRoll ", //20
"MittelIntNick ",
"MittelIntRoll ",
"NeutralNick ",
"RollOffset ",
"IntRoll*Faktor ", //25
"Analog26 ",
"DirektAusglRoll ",
"MesswertRoll ",
"AusgleichRoll ",
"I-LageRoll ", //30
"StickRoll "
" ",
" ",
" ",
" ", //20
" ",
" ",
" ",
" ",
" ", //25
" ",
" ",
" ",
" ",
"GPS_Nick ", //30
"GPS_Roll "
};