Wrapper library for ESC PWM throttle control.
Fork of ESC by
esc.cpp@0:ec466ef657a2, 2013-06-06 (annotated)
- Committer:
- MitchJCarlson
- Date:
- Thu Jun 06 18:57:02 2013 +0000
- Revision:
- 0:ec466ef657a2
- Child:
- 1:4c02fede684b
Made library folders
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MitchJCarlson | 0:ec466ef657a2 | 1 | /** |
MitchJCarlson | 0:ec466ef657a2 | 2 | * esc.cpp |
MitchJCarlson | 0:ec466ef657a2 | 3 | * UWB Quadcopter Project |
MitchJCarlson | 0:ec466ef657a2 | 4 | * |
MitchJCarlson | 0:ec466ef657a2 | 5 | * |
MitchJCarlson | 0:ec466ef657a2 | 6 | * @Author |
MitchJCarlson | 0:ec466ef657a2 | 7 | * Mitch Carlson |
MitchJCarlson | 0:ec466ef657a2 | 8 | */ |
MitchJCarlson | 0:ec466ef657a2 | 9 | #include "mbed.h" |
MitchJCarlson | 0:ec466ef657a2 | 10 | #include "esc.h" |
MitchJCarlson | 0:ec466ef657a2 | 11 | |
MitchJCarlson | 0:ec466ef657a2 | 12 | ESC::ESC(PwmOut pwmPinOut, int period) |
MitchJCarlson | 0:ec466ef657a2 | 13 | : esc(pwmPinOut), period(period), throttle(1000) { |
MitchJCarlson | 0:ec466ef657a2 | 14 | esc.period_ms(period); |
MitchJCarlson | 0:ec466ef657a2 | 15 | esc.pulsewidth_us(throttle); |
MitchJCarlson | 0:ec466ef657a2 | 16 | } |
MitchJCarlson | 0:ec466ef657a2 | 17 | |
MitchJCarlson | 0:ec466ef657a2 | 18 | bool ESC::setThrottle(int t) { |
MitchJCarlson | 0:ec466ef657a2 | 19 | if (t >= 0 && t <= 100) { // qualify range |
MitchJCarlson | 0:ec466ef657a2 | 20 | throttle = t*10 + 1000; // map range, 1-2 ms (1000-2000us) |
MitchJCarlson | 0:ec466ef657a2 | 21 | return true; |
MitchJCarlson | 0:ec466ef657a2 | 22 | } |
MitchJCarlson | 0:ec466ef657a2 | 23 | return false; |
MitchJCarlson | 0:ec466ef657a2 | 24 | } |
MitchJCarlson | 0:ec466ef657a2 | 25 | |
MitchJCarlson | 0:ec466ef657a2 | 26 | void ESC::pulse(void) { |
MitchJCarlson | 0:ec466ef657a2 | 27 | esc.pulsewidth_us(throttle); |
MitchJCarlson | 0:ec466ef657a2 | 28 | } |