Added range setting via a parameter for CH6 tuning

This commit is contained in:
Jason Short 2012-02-15 09:01:34 -08:00
parent 8e88d9e19e
commit 4ecbb19dcd
1 changed files with 20 additions and 20 deletions

View File

@ -1914,11 +1914,11 @@ adjust_altitude()
static void tuning(){ static void tuning(){
tuning_value = (float)g.rc_6.control_in / 1000.0; tuning_value = (float)g.rc_6.control_in / 1000.0;
g.rc_6.set_range(g.radio_tuning_low,g.radio_tuning_high); // 0 to 1
switch(g.radio_tuning){ switch(g.radio_tuning){
case CH6_DAMP: case CH6_DAMP:
g.rc_6.set_range(0,300); // 0 to 1
g.stabilize_d.set(tuning_value); g.stabilize_d.set(tuning_value);
//tuning_value = (float)g.rc_6.control_in / 100000.0; //tuning_value = (float)g.rc_6.control_in / 100000.0;
@ -1928,105 +1928,105 @@ static void tuning(){
break; break;
case CH6_STABILIZE_KP: case CH6_STABILIZE_KP:
g.rc_6.set_range(0,8000); // 0 to 8 //g.rc_6.set_range(0,8000); // 0 to 8
g.pi_stabilize_roll.kP(tuning_value); g.pi_stabilize_roll.kP(tuning_value);
g.pi_stabilize_pitch.kP(tuning_value); g.pi_stabilize_pitch.kP(tuning_value);
break; break;
case CH6_STABILIZE_KI: case CH6_STABILIZE_KI:
g.rc_6.set_range(0,300); // 0 to .3 //g.rc_6.set_range(0,300); // 0 to .3
tuning_value = (float)g.rc_6.control_in / 1000.0; //tuning_value = (float)g.rc_6.control_in / 1000.0;
g.pi_stabilize_roll.kI(tuning_value); g.pi_stabilize_roll.kI(tuning_value);
g.pi_stabilize_pitch.kI(tuning_value); g.pi_stabilize_pitch.kI(tuning_value);
break; break;
case CH6_RATE_KP: case CH6_RATE_KP:
g.rc_6.set_range(40,300); // 0 to .3 //g.rc_6.set_range(40,300); // 0 to .3
g.pid_rate_roll.kP(tuning_value); g.pid_rate_roll.kP(tuning_value);
g.pid_rate_pitch.kP(tuning_value); g.pid_rate_pitch.kP(tuning_value);
break; break;
case CH6_RATE_KI: case CH6_RATE_KI:
g.rc_6.set_range(0,500); // 0 to .5 //g.rc_6.set_range(0,500); // 0 to .5
g.pid_rate_roll.kI(tuning_value); g.pid_rate_roll.kI(tuning_value);
g.pid_rate_pitch.kI(tuning_value); g.pid_rate_pitch.kI(tuning_value);
break; break;
case CH6_YAW_KP: case CH6_YAW_KP:
g.rc_6.set_range(0,1000); //g.rc_6.set_range(0,1000);
g.pi_stabilize_yaw.kP(tuning_value); g.pi_stabilize_yaw.kP(tuning_value);
break; break;
case CH6_YAW_RATE_KP: case CH6_YAW_RATE_KP:
g.rc_6.set_range(0,1000); //g.rc_6.set_range(0,1000);
g.pid_rate_yaw.kP(tuning_value); g.pid_rate_yaw.kP(tuning_value);
break; break;
case CH6_THROTTLE_KP: case CH6_THROTTLE_KP:
g.rc_6.set_range(0,1000); // 0 to 1 //g.rc_6.set_range(0,1000); // 0 to 1
g.pid_throttle.kP(tuning_value); g.pid_throttle.kP(tuning_value);
break; break;
case CH6_TOP_BOTTOM_RATIO: case CH6_TOP_BOTTOM_RATIO:
g.rc_6.set_range(800,1000); // .8 to 1 //g.rc_6.set_range(800,1000); // .8 to 1
g.top_bottom_ratio = tuning_value; g.top_bottom_ratio = tuning_value;
break; break;
case CH6_RELAY: case CH6_RELAY:
g.rc_6.set_range(0,1000); //g.rc_6.set_range(0,1000);
if (g.rc_6.control_in > 525) relay.on(); if (g.rc_6.control_in > 525) relay.on();
if (g.rc_6.control_in < 475) relay.off(); if (g.rc_6.control_in < 475) relay.off();
break; break;
case CH6_TRAVERSE_SPEED: case CH6_TRAVERSE_SPEED:
g.rc_6.set_range(0,1000); //g.rc_6.set_range(0,1000);
g.waypoint_speed_max = g.rc_6.control_in; g.waypoint_speed_max = g.rc_6.control_in;
break; break;
case CH6_LOITER_P: case CH6_LOITER_P:
g.rc_6.set_range(0,2000); //g.rc_6.set_range(0,2000);
g.pi_loiter_lat.kP(tuning_value); g.pi_loiter_lat.kP(tuning_value);
g.pi_loiter_lon.kP(tuning_value); g.pi_loiter_lon.kP(tuning_value);
break; break;
case CH6_NAV_P: case CH6_NAV_P:
g.rc_6.set_range(0,4000); //g.rc_6.set_range(0,4000);
g.pid_nav_lat.kP(tuning_value); g.pid_nav_lat.kP(tuning_value);
g.pid_nav_lon.kP(tuning_value); g.pid_nav_lon.kP(tuning_value);
break; break;
case CH6_NAV_I: case CH6_NAV_I:
g.rc_6.set_range(0,500); //g.rc_6.set_range(0,500);
g.pid_nav_lat.kI(tuning_value); g.pid_nav_lat.kI(tuning_value);
g.pid_nav_lon.kI(tuning_value); g.pid_nav_lon.kI(tuning_value);
break; break;
#if FRAME_CONFIG == HELI_FRAME #if FRAME_CONFIG == HELI_FRAME
case CH6_HELI_EXTERNAL_GYRO: case CH6_HELI_EXTERNAL_GYRO:
g.rc_6.set_range(1000,2000); //g.rc_6.set_range(1000,2000);
g.heli_ext_gyro_gain = tuning_value * 1000; g.heli_ext_gyro_gain = tuning_value * 1000;
break; break;
#endif #endif
case CH6_THR_HOLD_KP: case CH6_THR_HOLD_KP:
g.rc_6.set_range(0,1000); // 0 to 1 //g.rc_6.set_range(0,1000); // 0 to 1
g.pi_alt_hold.kP(tuning_value); g.pi_alt_hold.kP(tuning_value);
break; break;
case CH6_OPTFLOW_KP: case CH6_OPTFLOW_KP:
g.rc_6.set_range(0,5000); // 0 to 5 //g.rc_6.set_range(0,5000); // 0 to 5
g.pid_optflow_roll.kP(tuning_value); g.pid_optflow_roll.kP(tuning_value);
g.pid_optflow_pitch.kP(tuning_value); g.pid_optflow_pitch.kP(tuning_value);
break; break;
case CH6_OPTFLOW_KI: case CH6_OPTFLOW_KI:
g.rc_6.set_range(0,10000); // 0 to 10 //g.rc_6.set_range(0,10000); // 0 to 10
g.pid_optflow_roll.kI(tuning_value); g.pid_optflow_roll.kI(tuning_value);
g.pid_optflow_pitch.kI(tuning_value); g.pid_optflow_pitch.kI(tuning_value);
break; break;
case CH6_OPTFLOW_KD: case CH6_OPTFLOW_KD:
g.rc_6.set_range(0,200); // 0 to 0.2 //g.rc_6.set_range(0,200); // 0 to 0.2
g.pid_optflow_roll.kD(tuning_value); g.pid_optflow_roll.kD(tuning_value);
g.pid_optflow_pitch.kD(tuning_value); g.pid_optflow_pitch.kD(tuning_value);
break; break;