From 1701cac0b15f71bee6d7b449e0c13e8a2712f6a8 Mon Sep 17 00:00:00 2001
From: rmackay9 <rmackay9@yahoo.com>
Date: Wed, 4 Apr 2012 23:00:56 +0900
Subject: [PATCH] ArduCopter - radio.pde - changed motor initialisation to set
 update rate, frame orientation, min and max throttle to AP_Motors class.
 Note: perhaps the motors speed at least should be moved to a parameter within
 the motors class. output_min function greatly simplified as this is handled
 by the AP_Motors class.

---
 ArduCopter/radio.pde | 38 +++++++++++++-------------------------
 1 file changed, 13 insertions(+), 25 deletions(-)

diff --git a/ArduCopter/radio.pde b/ArduCopter/radio.pde
index 7e9ec6de2..1fc97371b 100644
--- a/ArduCopter/radio.pde
+++ b/ArduCopter/radio.pde
@@ -47,7 +47,15 @@ static void init_rc_in()
 static void init_rc_out()
 {
 	APM_RC.Init( &isr_registry );		// APM Radio initialization
-	init_motors_out();
+	#if INSTANT_PWM == 1
+	motors.set_update_rate(AP_MOTORS_SPEED_INSTANT_PWM);
+	#else
+	motors.set_update_rate(g.rc_speed);
+	#endif
+	motors.set_frame_orientation(g.frame_orientation);
+	motors.Init();						// motor initialisation
+	motors.set_min_throttle(MINIMUM_THROTTLE);
+	motors.set_max_throttle(MAXIMUM_THROTTLE);
 
 	// this is the camera pitch5 and roll6
 	APM_RC.OutputCh(CH_CAM_PITCH, 1500);
@@ -69,7 +77,7 @@ static void init_rc_out()
 			// we will enter esc_calibrate mode on next reboot
 			g.esc_calibrate.set_and_save(1);
 			// send miinimum throttle out to ESC
-			output_min();
+			motors.output_min();
 			// block until we restart
 			while(1){
 				//Serial.println("esc");
@@ -95,28 +103,8 @@ static void init_rc_out()
 
 void output_min()
 {
-	motors_output_enable();
-	#if FRAME_CONFIG == HELI_FRAME
-        heli_move_servos_to_mid();
-	#else
-	    APM_RC.OutputCh(MOT_1, 	g.rc_3.radio_min);					// Initialization of servo outputs
-	    APM_RC.OutputCh(MOT_2, 	g.rc_3.radio_min);
-	    APM_RC.OutputCh(MOT_3, 	g.rc_3.radio_min);
-	    APM_RC.OutputCh(MOT_4, 	g.rc_3.radio_min);
-	#endif
-
-	APM_RC.OutputCh(MOT_5,   g.rc_3.radio_min);
-	APM_RC.OutputCh(MOT_6,   g.rc_3.radio_min);
-
-	#if FRAME_CONFIG == TRI_FRAME
-	APM_RC.OutputCh(CH_TRI_YAW,   g.rc_4.radio_trim); // Yaw servo middle position
-	#endif
-
-	#if FRAME_CONFIG ==	OCTA_FRAME
-	APM_RC.OutputCh(MOT_7,   g.rc_3.radio_min);
-	APM_RC.OutputCh(MOT_8,   g.rc_3.radio_min);
-	#endif
-
+	motors.enable();
+	motors.output_min();
 }
 static void read_radio()
 {
@@ -158,7 +146,7 @@ static void throttle_failsafe(uint16_t pwm)
 			// Don't enter Failsafe if we are not armed
 			// home distance is in meters
 			// This is to prevent accidental RTL
-			if((motor_armed == true) && (home_distance > 1000)){
+			if(motors.armed() && (home_distance > 1000)){
 				SendDebug("MSG FS ON ");
 				SendDebugln(pwm, DEC);
 				set_failsafe(true);
-- 
GitLab