diff options
author | David A. Mellis <d.mellis@arduino.cc> | 2008-05-07 19:53:52 +0000 |
---|---|---|
committer | David A. Mellis <d.mellis@arduino.cc> | 2008-05-07 19:53:52 +0000 |
commit | d98fdd989fcc598401e89e5095cfcdce3baff9b8 (patch) | |
tree | 685bea879690358c534dbee033368f7a1ff8f423 /libraries/Servo/Servo.h | |
parent | 4b2b39e383d7fec0f94deb0f9a75a493bce2d0ca (diff) |
Adding Servo library (ServoTimer1 from the playground) by Jim Studt.
Diffstat (limited to 'libraries/Servo/Servo.h')
-rwxr-xr-x | libraries/Servo/Servo.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/libraries/Servo/Servo.h b/libraries/Servo/Servo.h new file mode 100755 index 0000000..780367d --- /dev/null +++ b/libraries/Servo/Servo.h @@ -0,0 +1,51 @@ +#ifndef Servo_h +#define Servo_h + +/* + Servo.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> +#include <wiring.h> + +class Servo +{ + 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: + Servo(); + Servo(int, int); // pulse length for 0 degrees in microseconds, 540uS default + // pulse length for 180 degrees in microseconds, 2400uS default + uint8_t attach(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 |