Subversion Repositories NaviCtrl

Compare Revisions

Ignore whitespace Rev 662 → Rev 663

/trunk/GPS.h
37,6 → 37,7
extern u8 SimulationFlags;
extern u8 MK_FlyingWithGps;
extern u8 CurrentlyFlyingWaypoints;
extern void ConfirmGpsUpdateRate(u16);
 
void GPS_Init(void);
void GPS_Navigation(gps_data_t *pGPS_Data, GPS_Stick_t* pGPS_Stick);
/trunk/main.c
101,7 → 101,7
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
u32 CountGpsProcessedIn5Sec = 50,CountNewGpsDataIn5Sec = 25, FreqGpsProcessedIn5Sec = 0, FreqNewGpsData = 0;
u32 CountGpsProcessedIn5Sec = 50,CountNewGpsDataIn5Sec = 25, FreqGpsNavProcessed = 0, FreqNewGpsData = 0;
u8 NewWPL_Name = 0;
u32 MaxWP_Radius_in_m = 0;
s8 ErrorMSG[25];
393,7 → 393,7
sprintf(ErrorMSG,"No GPS Fix ");
newErrorCode = 30;
}
else if((FreqNewGpsData < 28 || FreqNewGpsData > 60) && TimeSinceMotorStart > 5)
else if((FreqNewGpsData <= 35 || FreqNewGpsData > 60) && TimeSinceMotorStart > 15)
{
LED_RED_ON;
sprintf(ErrorMSG,"GPS Update rate ");
474,6 → 474,15
 
if(!(FC.StatusFlags & FC_STATUS_MOTOR_RUN)) TimeSinceMotorStart = 0;
 
if(FCCalibActive)
{
count5sec = 0;
FreqNewGpsData = 50;
CountNewGpsDataIn5Sec = 25;
CountGpsProcessedIn5Sec = 0;
TimerCheckError = SetDelay(1000);
}
 
// ---------------- Error Check Timing ----------------------------
if(CheckDelay(TimerCheckError) || (FC.StatusFlags & FC_STATUS_START && !(oldFcFlags & FC_STATUS_START))) // Timer or FY wants to start
{
483,11 → 492,13
if(CompassValueErrorCount) CompassValueErrorCount--;
if(++count5sec == 5)
{
FreqGpsNavProcessed = CountGpsProcessedIn5Sec * 2; //400 = 40Hz
FreqNewGpsData = CountNewGpsDataIn5Sec; // 50 = 5,0Hz
 
count5sec = 0;
FreqGpsProcessedIn5Sec = CountGpsProcessedIn5Sec * 2;
FreqNewGpsData = CountNewGpsDataIn5Sec;
CountGpsProcessedIn5Sec = 0;
CountNewGpsDataIn5Sec = FreqNewGpsData / 2;
ConfirmGpsUpdateRate(FreqNewGpsData);
}
}
oldFcFlags = FC.StatusFlags;
/trunk/main.h
285,7 → 285,8
extern volatile u32 SPIWatchDog; // stop Navigation if this goes to zero
extern volatile u32 SD_WatchDog; // stop Logging if this goes to zero
extern volatile u32 PollingTimeout;
extern u32 CountGpsProcessedIn5Sec,CountNewGpsDataIn5Sec, FreqGpsProcessedIn5Sec, FreqNewGpsData;
extern u32 CountGpsProcessedIn5Sec,CountNewGpsDataIn5Sec, FreqGpsNavProcessed, FreqNewGpsData;
extern u32 TimeSinceMotorStart;
 
extern u16 SD_SettingWaitLED;
extern u16 SD_PosAccuracy;
/trunk/menu.c
467,9 → 467,9
case 21:
LCD_printfxy(0,0,"CPU Processing ");
LCD_printfxy(0,2,"GPS-Data: %2i.%iHz ",FreqNewGpsData/10, FreqNewGpsData%10);
LCD_printfxy(0,3,"GPS-Update:%2i.%iHz ",FreqGpsProcessedIn5Sec/10, FreqGpsProcessedIn5Sec%10);
LCD_printfxy(0,3,"GPS-Update:%2i.%iHz ",FreqGpsNavProcessed/10, FreqGpsNavProcessed%10);
if(FreqNewGpsData >= 48 && FreqNewGpsData <= 52) LCD_printfxy(18,2,"OK") else LCD_printfxy(18,2,"!!");
if(FreqGpsProcessedIn5Sec >= 350) LCD_printfxy(18,3,"OK") else LCD_printfxy(18,3,"!!");
if(FreqGpsNavProcessed >= 350) LCD_printfxy(18,3,"OK") else LCD_printfxy(18,3,"!!");
break;
case 22:
LCD_printfxy(0,0,"BL Current" );