diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2011-10-20 22:16:19 -0700 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2011-10-20 22:16:19 -0700 |
commit | fc944ff979dbbd49a57722fe2d1d2acf47312eb4 (patch) | |
tree | 38cc3a5c5c8f24f55068fc4ffa73d018169fc2df /libraries/PWMServo/PWMServo.h |
Inital commit... halfway through the project
Diffstat (limited to 'libraries/PWMServo/PWMServo.h')
-rw-r--r-- | libraries/PWMServo/PWMServo.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/libraries/PWMServo/PWMServo.h b/libraries/PWMServo/PWMServo.h new file mode 100644 index 0000000..cde0337 --- /dev/null +++ b/libraries/PWMServo/PWMServo.h @@ -0,0 +1,52 @@ +#ifndef PWMServo_h +#define PWMServo_h + +/* + PWMServo.h - Hardware Servo Timer Library + Author: Jim Studt, jim@federated.com + Copyright (c) 2007 David A. Mellis. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include <inttypes.h> + +class PWMServo +{ + private: + uint8_t pin; + uint8_t angle; // in degrees + uint8_t min16; // minimum pulse, 16uS units (default is 34) + uint8_t max16; // maximum pulse, 16uS units, 0-4ms range (default is 150) + static void seizeTimer1(); + static void releaseTimer1(); + static uint8_t attached9; + static uint8_t attached10; + public: + PWMServo(); + uint8_t attach(int); + // pulse length for 0 degrees in microseconds, 544uS default + // pulse length for 180 degrees in microseconds, 2400uS default + uint8_t attach(int, int, int); + // attach to a pin, sets pinMode, returns 0 on failure, won't + // position the servo until a subsequent write() happens + // Only works for 9 and 10. + void detach(); + void write(int); // specify the angle in degrees, 0 to 180 + uint8_t read(); + uint8_t attached(); +}; + +#endif |