From 04a90b5dd1f9b51f6851b035cf9b72e0ac91f572 Mon Sep 17 00:00:00 2001 From: sciencewhiz Date: Wed, 13 Jan 2021 20:09:08 -0800 Subject: [PATCH] [examples] Don't continually set setpoint in PotentiometerPID Examples (#3084) --- .../src/main/cpp/examples/PotentiometerPID/cpp/Robot.cpp | 6 +++++- .../wpi/first/wpilibj/examples/potentiometerpid/Robot.java | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/wpilibcExamples/src/main/cpp/examples/PotentiometerPID/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/PotentiometerPID/cpp/Robot.cpp index d075f10346..24c586a39a 100644 --- a/wpilibcExamples/src/main/cpp/examples/PotentiometerPID/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/PotentiometerPID/cpp/Robot.cpp @@ -17,6 +17,10 @@ */ class Robot : public frc::TimedRobot { public: + void RobotInit() override { + m_pidController.SetSetpoint(kSetPoints[m_index]); + } + void TeleopPeriodic() override { // When the button is pressed once, the selected elevator setpoint is // incremented. @@ -24,10 +28,10 @@ class Robot : public frc::TimedRobot { if (currentButtonValue && !m_previousButtonValue) { // Index of the elevator setpoint wraps around m_index = (m_index + 1) % (sizeof(kSetPoints) / 8); + m_pidController.SetSetpoint(kSetPoints[m_index]); } m_previousButtonValue = currentButtonValue; - m_pidController.SetSetpoint(kSetPoints[m_index]); double output = m_pidController.Calculate(m_potentiometer.GetAverageVoltage()); m_elevatorMotor.Set(output); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/potentiometerpid/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/potentiometerpid/Robot.java index 1a7f0825b4..e0c3bb004f 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/potentiometerpid/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/potentiometerpid/Robot.java @@ -46,6 +46,7 @@ public class Robot extends TimedRobot { m_joystick = new Joystick(kJoystickChannel); m_pidController = new PIDController(kP, kI, kD); + m_pidController.setSetpoint(kSetPoints[m_index]); } @Override @@ -60,9 +61,8 @@ public class Robot extends TimedRobot { if (currentButtonValue && !m_previousButtonValue) { // index of the elevator setpoint wraps around. m_index = (m_index + 1) % kSetPoints.length; + m_pidController.setSetpoint(kSetPoints[m_index]); } m_previousButtonValue = currentButtonValue; - - m_pidController.setSetpoint(kSetPoints[m_index]); } }