View Single Post
  #2   Spotlight this post!  
Unread 08-02-2015, 21:47
ozrien's Avatar
ozrien ozrien is offline
Omar Zrien
AKA: Omar
no team
Team Role: Mentor
 
Join Date: Sep 2006
Rookie Year: 2003
Location: Sterling Heights, MI
Posts: 522
ozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond repute
Re: CANTalon SetPosition and GetIAccum issues

1.
SetPosition() seems to work with my setup. If you're sensor is not quadrature be sure to select it using programming API. See section 7 in Talon SRX software reference manual. Tested with firm 1.1. What does the self-test say?

Code:
#include "WPILib.h"
class Robot: public IterativeRobot
{
private:
	CANTalon _t1;
	CANTalon _t2;
	CANTalon _t3;
	CANTalon _t4;
	Joystick _j1;
	bool _lastBtn1;
public:
	Robot() : _t1(1),_t2(2),_t3(3),_t4(4),_j1(1), _lastBtn1(false)
	{
	}
	void TeleopPeriodic()
	{
		float y  = -1 * _j1.GetAxis(Joystick::kYAxis);
		_t1.Set(y);
		_t2.Set(y);
		_t3.Set(y);
		_t4.Set(y);

		bool btn1 = _j1.GetRawButton(1);
		if(btn1 && !_lastBtn1)
			_t1.SetPosition(0);
		_lastBtn1 = btn1;

		long encPos = _t1.GetPosition();

		{/* every 200ms */
			static int loops = 0;
			if(++loops>= (200/20) ){
				loops = 0;

				std::cout << "EncPos:" << encPos << std::endl;

			}
		}
	}

};
START_ROBOT_CLASS(Robot);


2. The units are explained in section 17 in the Talon SRX software reference manual.