Now you can download a copy of these docs so you can use them offline! Download now
Servo.cpp
00001 /*----------------------------------------------------------------------------*/ 00002 /* Copyright (c) FIRST 2008. All Rights Reserved. */ 00003 /* Open Source Software - may be modified and shared by FRC teams. The code */ 00004 /* must be accompanied by the FIRST BSD license file in $(WIND_BASE)/WPILib. */ 00005 /*----------------------------------------------------------------------------*/ 00006 00007 #include "Servo.h" 00008 00009 const float Servo::kMaxServoAngle; 00010 const float Servo::kMinServoAngle; 00011 00018 void Servo::InitServo() 00019 { 00020 // TODO: compute the appropriate values based on digital loop timing 00021 SetBounds(245, 0, 0, 0, 11); 00022 SetPeriodMultiplier(kPeriodMultiplier_4X); 00023 } 00024 00030 Servo::Servo(UINT32 channel) : SafePWM(channel) 00031 { 00032 InitServo(); 00033 } 00034 00041 Servo::Servo(UINT8 moduleNumber, UINT32 channel) : SafePWM(moduleNumber, channel) 00042 { 00043 InitServo(); 00044 } 00045 00046 Servo::~Servo() 00047 { 00048 } 00049 00057 void Servo::Set(float value) 00058 { 00059 SetPosition(value); 00060 } 00061 00067 void Servo::SetOffline() { 00068 SetRaw(0); 00069 } 00070 00078 float Servo::Get() 00079 { 00080 return GetPosition(); 00081 } 00082 00094 void Servo::SetAngle(float degrees) 00095 { 00096 if (degrees < kMinServoAngle) 00097 { 00098 degrees = kMinServoAngle; 00099 } 00100 else if (degrees > kMaxServoAngle) 00101 { 00102 degrees = kMaxServoAngle; 00103 } 00104 00105 SetPosition(((float) (degrees - kMinServoAngle)) / GetServoAngleRange()); 00106 } 00107 00114 float Servo::GetAngle() 00115 { 00116 return (float)GetPosition() * GetServoAngleRange() + kMinServoAngle; 00117 }
Generated on Thu Jan 12 2012 22:35:24 for WPILibC++ by
1.7.1