/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; |