Controller for Seagoat in the RoboSub competition

Dependencies:   Servo mbed

Fork of ESC by Matteo Terruzzi

Committer:
MatteoT
Date:
Fri Jul 19 03:11:05 2013 +0000
Revision:
0:116260c66d88
Child:
1:735702ea5519
constructor with PinName; 0-1.0f thruttle range; others

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MatteoT 0:116260c66d88 1 #include "mbed.h"
MatteoT 0:116260c66d88 2 #include "esc.h"
MatteoT 0:116260c66d88 3
MatteoT 0:116260c66d88 4 ESC::ESC(const PinName pwmPinOut, const int period)
MatteoT 0:116260c66d88 5 : esc(pwmPinOut), period(period), throttle(1000)
MatteoT 0:116260c66d88 6 {
MatteoT 0:116260c66d88 7 esc.period_ms(period);
MatteoT 0:116260c66d88 8 esc.pulsewidth_us(throttle);
MatteoT 0:116260c66d88 9 }
MatteoT 0:116260c66d88 10
MatteoT 0:116260c66d88 11 inline bool ESC::setThrottle (const float t)
MatteoT 0:116260c66d88 12 {
MatteoT 0:116260c66d88 13 if (t >= 0.0 && t <= 1.0) { // qualify range, 0-1
MatteoT 0:116260c66d88 14 throttle = 1000.0*t + 1000; // map to range, 1-2 ms (1000-2000us)
MatteoT 0:116260c66d88 15 return true;
MatteoT 0:116260c66d88 16 }
MatteoT 0:116260c66d88 17 return false;
MatteoT 0:116260c66d88 18 }
MatteoT 0:116260c66d88 19 inline bool ESC::operator= (const float t){
MatteoT 0:116260c66d88 20 return this->setThrottle(t);
MatteoT 0:116260c66d88 21 }
MatteoT 0:116260c66d88 22
MatteoT 0:116260c66d88 23 inline float ESC::getThrottle () const{
MatteoT 0:116260c66d88 24 return throttle;
MatteoT 0:116260c66d88 25 }
MatteoT 0:116260c66d88 26 inline ESC::operator float () const{
MatteoT 0:116260c66d88 27 return this->getThrottle();
MatteoT 0:116260c66d88 28 }
MatteoT 0:116260c66d88 29
MatteoT 0:116260c66d88 30 inline void ESC::pulse ()
MatteoT 0:116260c66d88 31 {
MatteoT 0:116260c66d88 32 esc.pulsewidth_us(throttle);
MatteoT 0:116260c66d88 33 }
MatteoT 0:116260c66d88 34 inline void ESC::operator() ()
MatteoT 0:116260c66d88 35 {
MatteoT 0:116260c66d88 36 this->pulse();
MatteoT 0:116260c66d88 37 }