copied everything over from 2012 and removed all of the actual robot code except the drivetrain stuff


git-svn-id: https://robotics.mvla.net/svn/frc971/2013/trunk/src@4078 f308d9b7-e957-4cde-b6ac-9a88185e7312
diff --git a/aos/crio/Talon.cpp b/aos/crio/Talon.cpp
new file mode 100644
index 0000000..54ef459
--- /dev/null
+++ b/aos/crio/Talon.cpp
@@ -0,0 +1,21 @@
+#include "aos/crio/Talon.h"
+#include "WPILib/DigitalModule.h"
+
+Talon::Talon(UINT32 channel) : SafePWM(channel) {
+  // 255 = 2.5ms, 0 = 0.5ms (or something close to that)
+  // these numbers were determined empirically with real hardware by Brian
+  //   on 11/23/12
+  //   got 211->210 as first transition that made a speed difference and
+  //   53->54 on the other side
+  //   going 2 to each side to make sure we get the full range
+  SetBounds(213, 137, 132, 127, 50);
+  // 1X = every 5.05ms, 2X and 4x are multiples of that
+  SetPeriodMultiplier(kPeriodMultiplier_1X);
+  SetRaw(m_centerPwm);
+}
+
+void Talon::Set(float speed, UINT8 /*syncGroup*/) { SetSpeed(speed); }
+float Talon::Get() { return GetSpeed(); }
+void Talon::Disable() { SetRaw(kPwmDisabled); }
+
+void Talon::PIDWrite(float output) { Set(output); }