Subversion Repositories NaviCtrl

Compare Revisions

Ignore whitespace Rev 698 → Rev 699

/trunk/main.c
100,6 → 100,7
u8 StopNavigation = 0;
volatile u32 PollingTimeout = 10000;
Param_t Parameter;
Partner_t Partner;
volatile FC_t FC;
volatile u32 SPIWatchDog = 15000; // stop Navigation if this goes to zero
volatile u32 SD_WatchDog = 15000; // stop Logging if this goes to zero
107,7 → 108,9
u8 NewWPL_Name = 0;
u32 MaxWP_Radius_in_m = 0;
s8 ErrorMSG[25];
s8 PartnerErrorMSG[25] = " --- \0";
u32 TimeSinceMotorStart = 0;
u8 IamMaster = NOTHING; // for Master/Slave Redundance
 
//----------------------------------------------------------------------------------------------------
void SCU_Config(void)
416,6 → 419,11
sprintf(ErrorMSG,"Redundancy test ");
newErrorCode = 37;
}
else if(CanbusTimeOut == 1)
{
sprintf(ErrorMSG,"ERR: Canbus");
newErrorCode = 39;
}
else // no error occured
{
StopNavigation = 0;
461,6 → 469,7
 
if(CountMilliseconds != old_ms) // 1 ms
{
if(CanbusTimeOut >= 2) CanbusTimeOut--;
old_ms = CountMilliseconds;
Compass_Update(); // update compass communication
Analog_Update(); // get new ADC values
612,6 → 621,9
// initialize logging (needs settings)
Logging_Init();
 
if(UART_VersionInfo.HWMajor < 30) IamMaster = SLAVE; else IamMaster = MASTER;
 
//UART_VersionInfo.HWMajor = 30;
LED_GRN_ON;
TimerCheckError = SetDelay(3000);
UART1_PutString("\r\n++++++++++++++++++++++++++++++++++++++++++");
/trunk/main.h
35,6 → 35,7
// 17 = R
// 18 = S
 
#define CAN_SLAVE_COMPATIBLE 1
#ifndef FOLLOW_ME
#define FC_SPI_COMPATIBLE 78 // <------------------
#else
61,6 → 62,8
#define FC_STATUS2_OUT1_ACTIVE 0x08
#define FC_STATUS2_OUT2_ACTIVE 0x10
#define FC_STATUS2_WAIT_FOR_TAKEOFF 0x20 // Motor Running, but still on the ground
#define FC_STATUS2_AUTO_STARTING 0x40
#define FC_STATUS2_AUTO_LANDING 0x80
 
// FC.StatusFlags3
#define FC_STATUS3_REDUNDANCE_AKTIVE 0x01
67,6 → 70,8
#define FC_STATUS3_BOAT 0x02
#define FC_STATUS3_REDUNDANCE_ERROR 0x04
#define FC_STATUS3_REDUNDANCE_TEST 0x08
#define FC_STATUS3_NOT_CALIBRATED 0x10
#define FC_STATUS3_MOTORS_STOPPED_BY_RC 0x20
 
#define OSD_FLAG_MASK1 (0x04 + 0x20 + 0x40 + 0x80)
#define OSD_FLAG_MASK2 (0x01 + 0x02 + 0x08 + 0x10)
193,6 → 198,11
extern s16 GeoMagDec;
extern u8 NewWPL_Name;
 
#define NOTHING 0
#define MASTER 1
#define SLAVE 2
extern u8 IamMaster;
 
#define VERSION_SERIAL_MAJOR 11 // do not change!
 
typedef struct
275,10 → 285,23
u8 AutoPhotoDistance;
} __attribute__((packed)) FC_t; // from FC
 
typedef struct
{
u8 ErrorCode;
u8 StatusFlags;
u8 StatusFlags2;
u8 StatusFlags3;
u8 NC_To_FC_Flags;
u8 MagnetField; // in %
s16 GyroCompassCorrected;
} __attribute__((packed)) Partner_t; // from FC
 
extern Partner_t Partner;
extern Param_t Parameter;
extern volatile FC_t FC;
extern s8 ErrorMSG[25];
extern u8 ErrorCode;
extern s8 PartnerErrorMSG[25];
extern u8 ErrorCode,PartnerErrorCode;
extern u8 StopNavigation;
extern u8 ErrorGpsFixLost;
extern u8 FromFC_LoadWP_List, ToFC_MaxWpListIndex, FromFC_Load_SinglePoint, FromFC_Save_SinglePoint;
287,7 → 310,7
extern volatile u32 PollingTimeout;
extern u32 CountGpsProcessedIn5Sec,CountNewGpsDataIn5Sec, FreqGpsNavProcessed, FreqNewGpsData;
extern u32 TimeSinceMotorStart;
 
extern u8 NC_To_FC_Flags, NC_To_FC_Autostart;
extern u16 SD_SettingWaitLED;
extern u16 SD_PosAccuracy;
extern u16 SD_ComingHomeSpeed;
296,6 → 319,11
extern u8 SpeakWaypointRached; // Speak once as soon as the Points are active
extern u8 SpeakNextWaypoint; // Speak once when reached
extern u8 NewWaypointsReceived; // when 1: activates the Waypoint list as soon as CH is started
extern s16 GyroCompassCorrected;
extern s16 CompassSetpointCorrected; // The compass setpoint that the FC tries to keep - corrected with the magnetic declination
extern s16 CompassSetpoint;
extern u8 AmountOfMotors;
extern s16 SimulatedDirection; // simulated compass direction
 
 
#define CHECK_ONLY 0
/trunk/spi_slave.h
84,11 → 84,6
extern u8 FCCalibActive;
extern u8 SpeakHoTT;
extern u8 NC_Wait_for_LED;
extern s16 GyroCompassCorrected;
extern s16 CompassSetpointCorrected; // The compass setpoint that the FC tries to keep - corrected with the magnetic declination
extern s16 CompassSetpoint;
extern u8 AmountOfMotors;
extern s16 SimulatedDirection; // simulated compass direction
 
#define MAX_RC_IN 16+12+3+4 // 16ch + 12ser + 3stages + 4 reserved
extern s8 PPM_In[MAX_RC_IN];
100,7 → 95,6
extern u8 FromFC_VarioCharacter;
extern u8 Logging_FCStatusFlags1,Logging_FCStatusFlags2;
extern s16 POI_KameraNick;
extern u8 NC_To_FC_Flags, NC_To_FC_Autostart;
extern u16 FlugMinutenGesamt;
extern u32 LoggingGasFilter, LoggingGasCnt;
extern u8 HoverGas;
340,7 → 334,7
unsigned char StartLandChannel;
unsigned char LandingSpeed;
unsigned char CompassOffset;
unsigned char AutoLandingVoltage; // in 0,1V 0 -> disabled
unsigned char AutoLandingVoltage; // in 0,1V 0 -> disabled
unsigned char ComingHomeVoltage; // in 0,1V 0 -> disabled
unsigned char AutoPhotoAtitudes;
unsigned char SingleWpSpeed;