Subversion Repositories NaviCtrl

Compare Revisions

Ignore whitespace Rev 320 → Rev 321

/trunk/compass.c
142,6 → 142,8
 
void Compass_Update(void)
{
static s16vec_t old;
static u32 check_value_counter = 0;
// check for new cal state
Compass_UpdateCalState();
// initiate new compass communication
158,6 → 160,19
DebugOut.Analog[24] = MagVector.X;
DebugOut.Analog[25] = MagVector.Y;
DebugOut.Analog[26] = MagVector.Z;
if(!((old.X == MagVector.X) || (old.Y == MagVector.Y) || (old.Z == MagVector.Z))) check_value_counter = 0; // Values are normally changing
 
if(check_value_counter > 5000)
{
Compass_Heading = -1; // values didn't change for 5 seconds -> probably a compass-fault
}
else check_value_counter++;
 
DebugOut.Analog[16] = check_value_counter;
 
old.X = MagVector.X;
old.Y = MagVector.Y;
old.Z = MagVector.Z;
}
 
// put cal state into fifo
/trunk/main.h
35,7 → 35,7
#define VERSION_SERIAL_MINOR 0
 
#ifndef FOLLOW_ME
#define FC_SPI_COMPATIBLE 20
#define FC_SPI_COMPATIBLE 21
#else
#define FC_SPI_COMPATIBLE 0xFF
#endif
148,6 → 148,7
u8 OrientationAngle;
u8 GlobalConfig;
u8 ExtraConfig;
u8 ComingHomeAltitude;
} __attribute__((packed)) Param_t;
 
typedef struct
/trunk/menu.c
115,12 → 115,17
case 0:
LCD_printfxy(0,0,"++ Navi-Ctrl ++");
LCD_printfxy(0,1,"HW V%d.%d SW V%d.%d%c", Version_HW/10, Version_HW%10, VERSION_MAJOR, VERSION_MINOR, 'a'+ VERSION_PATCH);
 
if(ErrorCode)
{
LCD_printfxy(0,2,"Error: %d",ErrorCode);
LCD_printfxy(0,3,"%s",ErrorMSG);
}
else LCD_printfxy(0,3,"(c) Buss, Busker");
else
{
LCD_printfxy(0,3,"(c) Buss, Busker");
LCD_printfxy(0,2,"%s",ErrorMSG);
}
break;
case 1:
if (GPSData.Status == INVALID)
/trunk/ncmag.c
565,6 → 565,7
void NCMAG_Update(void)
{
static u32 TimerUpdate = 0;
static u8 send_config = 0;
 
if( (I2C_State == I2C_STATE_OFF) || !NCMAG_Present )
{
574,11 → 575,23
 
if(CheckDelay(TimerUpdate))
{
if(++send_config == 100) // every two seconds
{
send_config = 0;
MagConfig.mode = MODE_CONTINUOUS;
// activate positive bias field
NCMAG_SetMagConfig();
TimerUpdate = SetDelay(15); // back into the old time-slot
}
else
{
// check for new calibration state
Compass_UpdateCalState();
if(Compass_CalState) NCMAG_Calibrate();
NCMAG_GetMagVector(); //Get new data;
TimerUpdate = SetDelay(20); // every 20 ms are 50 Hz
if(send_config == 99) TimerUpdate = SetDelay(5); // next event is the re-configuration
else TimerUpdate = SetDelay(20); // every 20 ms are 50 Hz
}
}
}
 
/trunk/spi_slave.c
427,7 → 427,7
FC.StatusFlags2 = FromFlightCtrl.Param.Byte[11];
NaviData.FCStatusFlags = FC.StatusFlags;
NaviData.FCStatusFlags2 = FC.StatusFlags2;
// HeadFreeStartAngle = (s32) FromFlightCtrl.Param.Byte[10] * 20; // convert to 0.1°
Parameter.ComingHomeAltitude = FromFlightCtrl.Param.Byte[10];
break;
 
case SPI_FCCMD_ACCU:
/trunk/uart1.c
149,7 → 149,7
"SPI Okay ",
"I2C Error ",
"I2C Okay ", //15
"*POI_INDEX ",// "Kalman_K ",
" ",// "Kalman_K ",
"ACC_Speed_N ",
"ACC_Speed_E ",
"Speed_z ",// "GPS ACC ",