From 75788396670bd07691e40054a64efdbe58b96a93 Mon Sep 17 00:00:00 2001
From: Andrew Tridgell <tridge@samba.org>
Date: Mon, 30 Dec 2013 10:33:32 +1100
Subject: [PATCH] Rover: split up GPS update into 10Hz and 50Hz parts

---
 APMrover2/APMrover2.pde | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/APMrover2/APMrover2.pde b/APMrover2/APMrover2.pde
index ace108d66..ccb1d112c 100644
--- a/APMrover2/APMrover2.pde
+++ b/APMrover2/APMrover2.pde
@@ -553,9 +553,10 @@ static const AP_Scheduler::Task scheduler_tasks[] PROGMEM = {
 	{ read_radio,             1,   1000 },
     { ahrs_update,            1,   6400 },
     { read_sonars,            1,   2000 },
-    { update_current_mode,    1,   1000 },
-    { set_servos,             1,   1000 },
-    { update_GPS,             5,   2500 },
+    { update_current_mode,    1,   1500 },
+    { set_servos,             1,   1500 },
+    { update_GPS_50Hz,        1,   2500 },
+    { update_GPS_10Hz,        5,   2500 },
     { navigate,               5,   1600 },
     { update_compass,         5,   2000 },
     { update_commands,        5,   1000 },
@@ -803,7 +804,7 @@ static void one_second_loop(void)
     }
 }
 
-static void update_GPS(void)
+static void update_GPS_50Hz(void)
 {        
     static uint32_t last_gps_reading;
 	g_gps->update();
@@ -814,7 +815,11 @@ static void update_GPS(void)
             DataFlash.Log_Write_GPS(g_gps, current_loc.alt);
         }
     }
+}
+
 
+static void update_GPS_10Hz(void)
+{        
     have_position = ahrs.get_projected_position(current_loc);
 
 	if (g_gps->new_data && g_gps->status() >= GPS::GPS_OK_FIX_3D) {
-- 
GitLab