Now you can download a copy of these docs so you can use them offline! Download now
Accelerometer.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 "Accelerometer.h" 00008 #include "AnalogModule.h" 00009 #include "WPIErrors.h" 00010 00014 void Accelerometer::InitAccelerometer() 00015 { 00016 m_voltsPerG = 1.0; 00017 m_zeroGVoltage = 2.5; 00018 } 00019 00026 Accelerometer::Accelerometer(UINT32 channel) 00027 { 00028 m_analogChannel = new AnalogChannel(channel); 00029 m_allocatedChannel = true; 00030 InitAccelerometer(); 00031 } 00032 00042 Accelerometer::Accelerometer(UINT8 moduleNumber, UINT32 channel) 00043 { 00044 m_analogChannel = new AnalogChannel(moduleNumber, channel); 00045 m_allocatedChannel = true; 00046 InitAccelerometer(); 00047 } 00048 00055 Accelerometer::Accelerometer(AnalogChannel *channel) 00056 { 00057 if (channel == NULL) 00058 { 00059 wpi_setWPIError(NullParameter); 00060 } 00061 else 00062 { 00063 m_analogChannel = channel; 00064 InitAccelerometer(); 00065 } 00066 m_allocatedChannel = false; 00067 } 00068 00072 Accelerometer::~Accelerometer() 00073 { 00074 if (m_allocatedChannel) 00075 { 00076 delete m_analogChannel; 00077 } 00078 } 00079 00087 float Accelerometer::GetAcceleration() 00088 { 00089 return (m_analogChannel->GetAverageVoltage() - m_zeroGVoltage) / m_voltsPerG; 00090 } 00091 00100 void Accelerometer::SetSensitivity(float sensitivity) 00101 { 00102 m_voltsPerG = sensitivity; 00103 } 00104 00112 void Accelerometer::SetZero(float zero) 00113 { 00114 m_zeroGVoltage = zero; 00115 } 00116 00122 double Accelerometer::PIDGet() 00123 { 00124 return GetAcceleration(); 00125 }
Generated on Thu Jan 12 2012 22:35:17 for WPILibC++ by
1.7.1