Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1240 → Rev 1241

/trunk/makefile
5,11 → 5,11
#-------------------------------------------------------------------
VERSION_MAJOR = 0
VERSION_MINOR = 75
VERSION_PATCH = 1
VERSION_PATCH = 2
 
VERSION_SERIAL_MAJOR = 10 # Serial Protocol
VERSION_SERIAL_MINOR = 1 # Serial Protocol
NC_SPI_COMPATIBLE = 7 # Navi-Kompatibilität
NC_SPI_COMPATIBLE = 8 # Navi-Kompatibilität
#-------------------------------------------------------------------
 
ifeq ($(MCU), atmega32)
/trunk/spi.c
18,7 → 18,7
unsigned char SPITransferCompleted, SPI_ChkSum;
unsigned char SPI_RxDataValid,NaviDataOkay = 0;
 
unsigned char SPI_CommandSequence[] = { SPI_CMD_USER, SPI_CMD_STICK, SPI_CMD_PARAMETER1, SPI_CMD_STICK, SPI_CMD_MISC, SPI_CMD_VERSION };
unsigned char SPI_CommandSequence[] = { SPI_CMD_USER, SPI_CMD_STICK, SPI_CMD_PARAMETER1, SPI_CMD_STICK, SPI_CMD_MISC, SPI_CMD_VERSION, SPI_CMD_SERVOS };
unsigned char SPI_CommandCounter = 0;
 
#ifdef USE_SPI_COMMUNICATION
187,6 → 187,7
ToNaviCtrl.Param.Byte[10] =(unsigned char) BattLowVoltageWarning;
ToNaviCtrl.Param.Byte[11] =(unsigned char) eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET]);
break;
 
case SPI_CMD_PARAMETER1:
ToNaviCtrl.Param.Byte[0] = EE_Parameter.NaviGpsModeControl; // Parameters for the Naviboard
ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviGpsGain;
201,6 → 202,7
ToNaviCtrl.Param.Byte[10] = EE_Parameter.NaviSpeedCompensation;
ToNaviCtrl.Param.Byte[11] = EE_Parameter.NaviAngleLimitation;
break;
 
case SPI_CMD_STICK:
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
ToNaviCtrl.Param.Byte[0] = (char) tmp;
215,30 → 217,45
ToNaviCtrl.Param.Byte[6] = (unsigned char) Poti3;
ToNaviCtrl.Param.Byte[7] = (unsigned char) Poti4;
ToNaviCtrl.Param.Byte[8] = (unsigned char) SenderOkay;
break;
case SPI_CMD_MISC:
if(WinkelOut.CalcState > 5)
{
WinkelOut.CalcState = 0;
ToNaviCtrl.Param.Byte[0] = 5;
}
else ToNaviCtrl.Param.Byte[0] = WinkelOut.CalcState;
ToNaviCtrl.Param.Int[1] = HoehenWert;
ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviPH_LoginTime;
ToNaviCtrl.Param.Byte[4] = EE_Parameter.NaviGpsPLimit;
ToNaviCtrl.Param.Byte[5] = EE_Parameter.NaviGpsILimit;
ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviGpsDLimit;
break;
break;
 
case SPI_CMD_VERSION:
ToNaviCtrl.Param.Byte[0] = SPI_VersionInfo.Major;
ToNaviCtrl.Param.Byte[1] = SPI_VersionInfo.Minor;
ToNaviCtrl.Param.Byte[2] = SPI_VersionInfo.Patch;
ToNaviCtrl.Param.Byte[3] = SPI_VersionInfo.Compatible;
ToNaviCtrl.Param.Byte[4] = PlatinenVersion;
break;
}
case SPI_CMD_MISC:
if(WinkelOut.CalcState > 5)
{
WinkelOut.CalcState = 0;
ToNaviCtrl.Param.Byte[0] = 5;
}
else ToNaviCtrl.Param.Byte[0] = WinkelOut.CalcState;
ToNaviCtrl.Param.Int[1] = HoehenWert;
ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviPH_LoginTime;
ToNaviCtrl.Param.Byte[4] = EE_Parameter.NaviGpsPLimit;
ToNaviCtrl.Param.Byte[5] = EE_Parameter.NaviGpsILimit;
ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviGpsDLimit;
break;
 
case SPI_CMD_VERSION:
ToNaviCtrl.Param.Byte[0] = SPI_VersionInfo.Major;
ToNaviCtrl.Param.Byte[1] = SPI_VersionInfo.Minor;
ToNaviCtrl.Param.Byte[2] = SPI_VersionInfo.Patch;
ToNaviCtrl.Param.Byte[3] = SPI_VersionInfo.Compatible;
ToNaviCtrl.Param.Byte[4] = PlatinenVersion;
break;
 
case SPI_CMD_SERVOS:
ToNaviCtrl.Param.Byte[0] = EE_Parameter.ServoNickRefresh; // Parameters for the Servo Control
ToNaviCtrl.Param.Byte[1] = EE_Parameter.ServoCompInvert;
ToNaviCtrl.Param.Byte[2] = Parameter_ServoNickControl;
ToNaviCtrl.Param.Byte[3] = EE_Parameter.ServoNickComp;
ToNaviCtrl.Param.Byte[4] = EE_Parameter.ServoNickMin;
ToNaviCtrl.Param.Byte[5] = EE_Parameter.ServoNickMax;
ToNaviCtrl.Param.Byte[6] = Parameter_ServoRollControl;
ToNaviCtrl.Param.Byte[7] = EE_Parameter.ServoRollComp;
ToNaviCtrl.Param.Byte[8] = EE_Parameter.ServoRollMin;
ToNaviCtrl.Param.Byte[9] = EE_Parameter.ServoRollMax;
break;
 
}
 
sei();
 
if(SPI_RxDataValid)
263,20 → 280,6
FromNaviCtrl_Value.SerialDataOkay = FromNaviCtrl.Param.Byte[3];
break;
 
case SPI_EXTCTRL:
ExternControl.Digital[0] = FromNaviCtrl.Param.Byte[0];
ExternControl.Digital[1] = FromNaviCtrl.Param.Byte[1];
ExternControl.RemoteTasten = FromNaviCtrl.Param.Byte[2];
ExternControl.Nick = FromNaviCtrl.Param.sByte[3];
ExternControl.Roll = FromNaviCtrl.Param.sByte[4];
ExternControl.Gier = FromNaviCtrl.Param.sByte[5];
ExternControl.Gas = FromNaviCtrl.Param.Byte[6];
ExternControl.Hight = FromNaviCtrl.Param.sByte[7];
ExternControl.free = FromNaviCtrl.Param.Byte[8];
ExternControl.Frame = FromNaviCtrl.Param.Byte[9];
ExternControl.Config = FromNaviCtrl.Param.Byte[10];
break;
 
default:
break;
}
/trunk/spi.h
55,6 → 55,7
#define SPI_CMD_MISC 12
#define SPI_CMD_PARAMETER1 13
#define SPI_CMD_VERSION 14
#define SPI_CMD_SERVOS 15
 
struct str_ToNaviCtrl
{
80,7 → 81,7
};
 
#define SPI_KALMAN 103
#define SPI_EXTCTRL 104
 
struct str_FromNaviCtrl
{
unsigned char Command;