Subversion Repositories NaviCtrl

Compare Revisions

Ignore whitespace Rev 864 → Rev 865

/trunk/CamCtrl.c
185,7 → 185,7
 
void GimbalCtrl_GetData(u8 timeout)
{
static u32 timing = 500;
static u32 timing = 500, start_idle = 4000;
static s16 old_nick;
s16 tmp, NickGimbal;
#define GIMBAL_DATARATE 66 // 66ms = 15Hz bzw. 30Hz
194,13 → 194,12
if(EE_Parameter.ServoCompInvert & SERVO_NICK_INV) NickGimbal = -tmp; else NickGimbal = tmp;
NickGimbal += CAM_Orientation.Elevation; // Add Poi Nick
NickGimbal += MenuNickGimbalOffset / 50;
 
if((old_nick != NickGimbal) && (timing < GIMBAL_DATARATE/2)) timing = 0; // Schneller, wenn sich die Daten ändern
 
if(timing)
{
timing--;
if(start_idle) start_idle--;// nach dem Start einige Sekunden warten
}
else
{
225,9 → 224,10
// ++++++++++++++++++++++++++++++++++++++++++++++
if(FC.RC_Quality < 50) // Failsafe-Positions
{
if(EE_Parameter.ServoFS_Pos[0]) ToGimbalCtrl.Nick = (s32)((u32)EE_Parameter.ServoFS_Pos[0] * 10) - 1280;
if(EE_Parameter.ServoFS_Pos[1]) ToGimbalCtrl.Roll = (s32)((u32)EE_Parameter.ServoFS_Pos[1] * 10) - 1280;
if(EE_Parameter.ServoFS_Pos[0]) (s32)((u32)EE_Parameter.ServoFS_Pos[0] * 10) - 1280; //else ToGimbalCtrl.Nick = 0;
if(EE_Parameter.ServoFS_Pos[1]) (s32)((u32)EE_Parameter.ServoFS_Pos[1] * 10) - 1280; //else ToGimbalCtrl.Roll = 0;
}
 
min_n = (s32)((u32)EE_Parameter.ServoNickMin * 10) - 1280;
max_n = (s32)((u32)EE_Parameter.ServoNickMax * 10) - 1280;
if(ToGimbalCtrl.Nick > max_n) ToGimbalCtrl.Nick = max_n;
237,6 → 237,13
if(ToGimbalCtrl.Roll > max_r) ToGimbalCtrl.Roll = max_r;
if(ToGimbalCtrl.Roll < min_r) ToGimbalCtrl.Roll = min_r;
// ++++++++++++++++++++++++++++++++++++++++++++++
if(start_idle) // nach dem Start einige Sekunden warten
{
ToGimbalCtrl.Nick = 0;
ToGimbalCtrl.Roll = 0;
ToGimbalCtrl.Yaw = 0;
}
// ++++++++++++++++++++++++++++++++++++++++++++++
// + Crc
// ++++++++++++++++++++++++++++++++++++++++++++++
ToGimbalCtrl.Crc = 0x55; // initialize
/trunk/analog.c
99,7 → 99,7
{
ADC_InitTypeDef ADC_InitStructure;
 
UART1_PutString("\r\n ADC init...");
// UART1_PutString("\r\n ADC init...");
 
SCU_APBPeriphClockConfig(__GPIO4, ENABLE); // Enable the GPIO4 Clock
 
139,7 → 139,7
 
VIC_ITCmd(ADC_ITLine, ENABLE);
 
UART1_PutString("ok");
// UART1_PutString("ok");
}
 
void Analog_Deinit(void)
/trunk/canbus.c
153,7 → 153,7
 
void CanbusInit(void)
{
UART1_PutString("\r\n Canbus init...");
UART1_PutString(" Canbus init...");
CAN_IO_Init();
SCU_APBPeriphClockConfig(__CAN, ENABLE);
SCU_APBPeriphReset(__CAN, DISABLE);
203,7 → 203,7
CanTxMessage[CAN_ID_VERSION].D.Byte[6] = VERSION_MINOR;
CanTxMessage[CAN_ID_VERSION].D.Byte[7] = VERSION_MAJOR;
 
UART1_PutString("ok");
UART1_PutString("ok\n\r");
}
 
void ProcessCanBus(void)
/trunk/eeprom.c
350,7 → 350,7
 
NCParams[NCPARAMS_BARO_KOMPENSATION] = LuftdruckTemperaturKompensation;
NCParamState[NCPARAMS_BARO_KOMPENSATION] = NCRARAM_STATE_VALID;
if(LuftdruckTemperaturKompensation) UART1_PutString("\r\n Baro Temperature Calibration active\r\n");
if(LuftdruckTemperaturKompensation) UART1_PutString(" Baro Temperature Calibration active\r\n");
}
 
void WriteBaudrateIndexToEEprom(void)
/trunk/fat16.c
754,7 → 754,7
result = 0;
end:
if(result != 0) Fat16_Deinit();
else UART1_PutString("ok");
// else UART1_PutString(" SD card ok");
return(result);
}
 
/trunk/ftphelper.c
79,7 → 79,7
 
char FTP_data[DATA_TRANSFER_SIZE+10]; // rx & tx buffer to avoid 2 buffers
 
#define KEYWORD_COUNT 54
#define KEYWORD_COUNT 55
// most used gpx tags can be compressed
const char keyword[KEYWORD_COUNT][16]=
{"Altimeter>\0 \0",
129,6 → 129,7
"GPSInfo>\0 \0",
"Gimbal>\0 \0",
"Laser>\0 \0",
"ExCtl>\0 \0",
"<WP>----,0,0,0<\0",
"MagnetInclinati\0",
"BL_Temperature>\0",
135,7 → 136,7
"AvaiableMotorPo\0",
"FC_I2C_ErrorCou\0",
"FC_SPI_ErrorCou\0",
"TargetDistance>\0",
"TargetDistance>\0"
};
//ACHTUNG: ggf. DATA_TRANSFER_SIZE vergrössern
 
/trunk/gpx.c
218,7 → 218,7
sprintf(string, "<BaroKompens.>%i</BaroKompens.>\r\n",LuftdruckTemperaturKompensation);CheckSumAndWrite(&Check16File,string, doc->file);
sprintf(string, "<FcTemperat.>%i.%1i</FcTemperat.>\r\n",FC_Temperatur/10,abs(FC_Temperatur)%10);CheckSumAndWrite(&Check16File,string, doc->file);
if(FromGimbalCtrl.GimbalStatus) {sprintf(string, "<GimbalCtrV>%i.%02i</GimbalCtrV>\r\n",1 + FromGimbalCtrl.Version / 100, FromGimbalCtrl.Version % 100);CheckSumAndWrite(&Check16File,string, doc->file);}
 
if(EE_Parameter.ExternalControl) {sprintf(string, "<ExternalControl>%i,%02x,%02x</ExternalControl>\r\n",EE_Parameter.ExternalControl,FromFC_ExternalCtrlCfg,FromFC_ExternalCtrlSwitch);CheckSumAndWrite(&Check16File,string, doc->file);}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Magnetometer
if(Compass_I2CPort == NCMAG_PORT_EXTERN) sprintf(string, "<MagSensor>external2,(%i),",NCMAG_Orientation);
694,6 → 694,11
// GPS Sticks as Nick/Roll/Yaw
sprintf(string, "<GPSSticks>%d,%d,%d,'%c'</GPSSticks>\r\n", ToFlightCtrl.GPSStick.Nick, ToFlightCtrl.GPSStick.Roll, 0 ,NC_GPS_ModeCharacter);
CheckSumAndWrite(&Check16Block,string, doc->file);
if(EE_Parameter.ExternalControl)
{
sprintf(string, "<ExCtl>%02x,%02x,%i,%i,%i,%i</ExCtl>\r\n",FromFC_ExternalCtrlCfg,FromFC_ExternalCtrlSwitch,ExternControl.Nick, ExternControl.Roll,ExternControl.Gier,ExternControl.Gas);
CheckSumAndWrite(&Check16File,string, doc->file);
}
// RC Quality
sprintf(string, "<RCQuality>%d</RCQuality>\r\n", FC.RC_Quality);
CheckSumAndWrite(&Check16Block,string, doc->file);
730,7 → 735,6
sprintf(string, "<Gimbal>%d.%01d,%d.%01d</Gimbal>\r\n",FromGimbalCtrl.Nick/10,abs(FromGimbalCtrl.Nick%10),FromGimbalCtrl.Roll/10,abs(FromGimbalCtrl.Roll%10));
CheckSumAndWrite(&Check16Block,string, doc->file);
}
 
// sprintf(string, "<FCTemperat>%d</FCTemperat>\r\n",FC_Temperatur);
// CheckSumAndWrite(&Check16Block,string, doc->file);
 
/trunk/main.c
948,8 → 948,9
else UART1_PutString("okay\r\n");
}
else if(Compass_I2CPort == NCMAG_PORT_INTERN) UART1_PutString(" No GimbalCtrl connected \r\n");
 
// ++++++++++++++++++++++++++++++++++++++++++++++
UART1_PutString(" Initialization finished ... Start\r\n");
// ++++++++++++++++++++++++++++++++++++++++++++++
for (;;) // the endless main loop
{
PollingTimeout = 5;
/trunk/menu.c
376,7 → 376,7
LCD_printfxy(0,3,"RC-Level: %3i", FC.RC_Quality); // Remote Control Level from FC
break;
case 12: // RC stick controls from FC
LCD_printfxy(0,0,"Ext.-Ctrl" );
LCD_printfxy(0,0,"External-Ctrl" );
 
if(!EE_Parameter.ExternalControl)
{
383,7 → 383,7
LCD_printfxy(0,2,"not used" );
}
else
if(FC.Poti[255 - EE_Parameter.ExternalControl] < 128)
if((EE_Parameter.ExternalControl >= 248) && (FC.Poti[255 - EE_Parameter.ExternalControl] < 128))
{
LCD_printfxy(0,2,"Switch is off");
}
391,9 → 391,9
{
if(FromFC_ExternalCtrlCfg)
{
LCD_printfxy(0,1,"Ni:%4i Ro:%4i ",ExternControl.Nick, ExternControl.Roll);
LCD_printfxy(0,2,"Gs:%4i Ya:%4i ",ExternControl.Gas, ExternControl.Gier);
LCD_printfxy(0,3,"C:%02x SW:%02x,",ExternControl.Config,ExternControl.Switches);
LCD_printfxy(0,1,"Nick:%4i Roll:%4i ",ExternControl.Nick, ExternControl.Roll);
LCD_printfxy(0,2,"Gas: %4i Yaw: %4i ",ExternControl.Gas, ExternControl.Gier);
LCD_printfxy(0,3,"Cfg:0x%02x SW:0x%02x",FromFC_ExternalCtrlCfg,FromFC_ExternalCtrlSwitch);
}
else
LCD_printfxy(0,2,"No Data");
/trunk/sdc.c
337,7 → 337,7
UART1_PutString("\r\n");
temp1 = pCID[14] & 0x0F; // month
temp2 = ((pCID[14]>>4)|(pCID[13]<<4)) + 2000; // year
sprintf(text, " Manufac. Date: %i/%i\r\n\r\n",temp1, temp2);
sprintf(text, " Manufac. Date: %i/%i\r\n",temp1, temp2);
UART1_PutString(text);
}
 
/trunk/spi_slave.c
154,7 → 154,7
str_HugeBlockToFC HugeBlockToFC;
u8 CamCtrlCharacter =' ';
 
s16 NickServoValue;
s16 NickServoValue = 128 * 64;;
s16 FromFC_ServoRollControl = 128;
s16 FromFC_ServoNickControl = 128;
 
309,7 → 309,7
GPIO_InitTypeDef GPIO_InitStructure;
SSP_InitTypeDef SSP_InitStructure;
 
UART1_PutString("\r\n SPI init...");
// UART1_PutString("\r\n SPI init...");
 
SCU_APBPeriphClockConfig(__GPIO2 ,ENABLE);
SCU_APBPeriphClockConfig(__SSP0 ,ENABLE);
362,7 → 362,7
SPI0_Timeout = SetDelay(4*SPI0_TIMEOUT);
EE_Parameter.Revision = 0;
sprintf(EE_Parameter.Name,"???%c",0);
UART1_PutString("ok");
// UART1_PutString("ok");
}
 
 
441,8 → 441,8
if(DebugUART == UART2) ToFlightCtrl.Param.Byte[4] = KM_BIT_UART; // informs the FC to listen to the UART
if(IO1_Function == IO1FUNC_PARACHUTE)
{
if(ToFC_Parachute_Off > 5) ToFlightCtrl.Param.Byte[4] |= KM_BIT_SLOW; // informs the FC to listen to the UART
if(ToFC_Parachute_Off > 300) ToFlightCtrl.Param.Byte[4] |= KM_BIT_OFF; // informs the FC to listen to the UART
if(ToFC_Parachute_Off > 5) ToFlightCtrl.Param.Byte[4] |= KM_BIT_SLOW;
if(ToFC_Parachute_Off > 300) ToFlightCtrl.Param.Byte[4] |= KM_BIT_OFF;
}
ToFlightCtrl.Param.Byte[5] = (s8) ToFC_Rotate_C;
ToFlightCtrl.Param.Byte[6] = (s8) ToFC_Rotate_S;
1031,11 → 1031,7
LowVoltageLandingActive = FromFlightCtrl.Param.Byte[8];
Parameter.FailSafeTime = FromFlightCtrl.Param.Byte[9];
FromFC_ExternalCtrlCfg = FromFlightCtrl.Param.Byte[10];
// DebugOut.Analog[] = NaviData_Volatile.ShutterCounter;
// 8
// 9
// 10
// 11
FromFC_ExternalCtrlSwitch = FromFlightCtrl.Param.Byte[11];
break;
 
default:
/trunk/uart1.c
149,7 → 149,7
u8 NewExternalControlFrame = 0; // flag that sends the Frame to FC
u16 UART1_BaudrateFallbackTimeout = 0;
u32 Uart1Baudrate = UART1_BAUD_RATE;
u8 FromFC_ExternalCtrlCfg = 0; // answer from FC
u8 FromFC_ExternalCtrlCfg = 0,FromFC_ExternalCtrlSwitch = 0; // answer from FC
 
SerialChannel_t SerialChannel;
u8 NewSerialChannelFrame = 0; // flag that sends the Frame to FC
/trunk/uart1.h
118,7 → 118,7
} __attribute__((packed)) ExternControl_t;
extern ExternControl_t ExternControl;
extern u8 NewExternalControlFrame; // flag that sends the Frame to FC
extern u8 FromFC_ExternalCtrlCfg; // answer from FC
extern u8 FromFC_ExternalCtrlCfg,FromFC_ExternalCtrlSwitch; // answer from FC
 
#define SERIAL_POTI_START 17
#define WP_EVENT_PPM_IN 29