Thomas Hamilton
/
Servo
Servo file under construction.
Servo.h@0:c4caca30f35a, 2010-08-31 (annotated)
- Committer:
- Blaze513
- Date:
- Tue Aug 31 04:37:07 2010 +0000
- Revision:
- 0:c4caca30f35a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Blaze513 | 0:c4caca30f35a | 1 | #include "stdint.h" |
Blaze513 | 0:c4caca30f35a | 2 | #include "mbed.h" |
Blaze513 | 0:c4caca30f35a | 3 | |
Blaze513 | 0:c4caca30f35a | 4 | class Servo |
Blaze513 | 0:c4caca30f35a | 5 | { |
Blaze513 | 0:c4caca30f35a | 6 | private: |
Blaze513 | 0:c4caca30f35a | 7 | PwmOut SignalLine; |
Blaze513 | 0:c4caca30f35a | 8 | |
Blaze513 | 0:c4caca30f35a | 9 | float Period; |
Blaze513 | 0:c4caca30f35a | 10 | float UpperRange; |
Blaze513 | 0:c4caca30f35a | 11 | float Center; |
Blaze513 | 0:c4caca30f35a | 12 | float LowerRange; |
Blaze513 | 0:c4caca30f35a | 13 | float Position; |
Blaze513 | 0:c4caca30f35a | 14 | |
Blaze513 | 0:c4caca30f35a | 15 | public: |
Blaze513 | 0:c4caca30f35a | 16 | Servo(PinName sgnl); |
Blaze513 | 0:c4caca30f35a | 17 | //constructor sets common servo defaults |
Blaze513 | 0:c4caca30f35a | 18 | void position(float ratio); |
Blaze513 | 0:c4caca30f35a | 19 | //set normalized servo position (-1 to 1), default = 0 |
Blaze513 | 0:c4caca30f35a | 20 | float position(); |
Blaze513 | 0:c4caca30f35a | 21 | //get normalized servo position (-1 to 1) |
Blaze513 | 0:c4caca30f35a | 22 | void maximum(float seconds); |
Blaze513 | 0:c4caca30f35a | 23 | void maximum_ms(int milliseconds); |
Blaze513 | 0:c4caca30f35a | 24 | void maximum_us(int microseconds); |
Blaze513 | 0:c4caca30f35a | 25 | //set maximum deflection pulse width, default = 2400 us |
Blaze513 | 0:c4caca30f35a | 26 | void center(float seconds); |
Blaze513 | 0:c4caca30f35a | 27 | void center_ms(int milliseconds); |
Blaze513 | 0:c4caca30f35a | 28 | void center_us(int microseconds); |
Blaze513 | 0:c4caca30f35a | 29 | //set center deflection pulse width, default = 1500 us |
Blaze513 | 0:c4caca30f35a | 30 | void minimum(float seconds); |
Blaze513 | 0:c4caca30f35a | 31 | void minimum_ms(int milliseconds); |
Blaze513 | 0:c4caca30f35a | 32 | void minimum_us(int microseconds); |
Blaze513 | 0:c4caca30f35a | 33 | //set minimum deflection pulse width, default = 600 us |
Blaze513 | 0:c4caca30f35a | 34 | void period(float seconds); |
Blaze513 | 0:c4caca30f35a | 35 | void period_ms(int milliseconds); |
Blaze513 | 0:c4caca30f35a | 36 | void period_us(int microseconds); |
Blaze513 | 0:c4caca30f35a | 37 | //set the period, default = 20000 us |
Blaze513 | 0:c4caca30f35a | 38 | void pulsewidth(float seconds); |
Blaze513 | 0:c4caca30f35a | 39 | void pulsewidth_ms(int milliseconds); |
Blaze513 | 0:c4caca30f35a | 40 | void pulsewidth_us(int microseconds); |
Blaze513 | 0:c4caca30f35a | 41 | //set the pulse width, default = 1500 us |
Blaze513 | 0:c4caca30f35a | 42 | float operator =(float assignment); |
Blaze513 | 0:c4caca30f35a | 43 | //shorthand for position setting; |
Blaze513 | 0:c4caca30f35a | 44 | //ex: "ServoObj = 0.5;" will set servo deflection to +0.5 |
Blaze513 | 0:c4caca30f35a | 45 | operator float(); |
Blaze513 | 0:c4caca30f35a | 46 | //shorthand for position reading; |
Blaze513 | 0:c4caca30f35a | 47 | // ex: "float check = ServoObj;" will get the current servo deflection |
Blaze513 | 0:c4caca30f35a | 48 | }; |