A library that makes use of the TB6612FNG and tested on the Sparkfun FTB6612NG carrier board.
Dependents: mbed-os-example-FinalReal mbed-os-example-FinalReal_copy mbed-os-example-FinalReal
TB6612FNG.cpp@1:7f18197d1210, 2011-06-09 (annotated)
- Committer:
- Pinski1
- Date:
- Thu Jun 09 17:43:46 2011 +0000
- Revision:
- 1:7f18197d1210
- Parent:
- 0:34d1ce434420
Removed an errant space in an attempt to get doxygen documentation to show up.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Pinski1 | 0:34d1ce434420 | 1 | #include "TB6612FNG.h" |
Pinski1 | 0:34d1ce434420 | 2 | #include "mbed.h" |
Pinski1 | 0:34d1ce434420 | 3 | |
Pinski1 | 0:34d1ce434420 | 4 | TB6612FNG::TB6612FNG(PinName pPWM, PinName pIn1, PinName pIn2): motorPWM(pPWM), In1(pIn1), In2(pIn2) { |
Pinski1 | 0:34d1ce434420 | 5 | motorPWM = 0; |
Pinski1 | 0:34d1ce434420 | 6 | motorPWM.period(0.001); |
Pinski1 | 0:34d1ce434420 | 7 | In1 = 0; |
Pinski1 | 0:34d1ce434420 | 8 | In2 = 0; |
Pinski1 | 0:34d1ce434420 | 9 | } |
Pinski1 | 0:34d1ce434420 | 10 | |
Pinski1 | 0:34d1ce434420 | 11 | void TB6612FNG::setSpeed(float newSpeed) { |
Pinski1 | 0:34d1ce434420 | 12 | if(newSpeed > 0) { |
Pinski1 | 0:34d1ce434420 | 13 | In1 = 0; |
Pinski1 | 0:34d1ce434420 | 14 | In2 = 1; |
Pinski1 | 0:34d1ce434420 | 15 | motorPWM = newSpeed; |
Pinski1 | 0:34d1ce434420 | 16 | } |
Pinski1 | 0:34d1ce434420 | 17 | else if(newSpeed < 0) { |
Pinski1 | 0:34d1ce434420 | 18 | In1 = 1; |
Pinski1 | 0:34d1ce434420 | 19 | In2 = 0; |
Pinski1 | 0:34d1ce434420 | 20 | motorPWM = newSpeed * -1; |
Pinski1 | 0:34d1ce434420 | 21 | } |
Pinski1 | 0:34d1ce434420 | 22 | else { |
Pinski1 | 0:34d1ce434420 | 23 | In1 = 1; |
Pinski1 | 0:34d1ce434420 | 24 | In2 = 1; |
Pinski1 | 0:34d1ce434420 | 25 | motorPWM = 0; |
Pinski1 | 0:34d1ce434420 | 26 | } |
Pinski1 | 0:34d1ce434420 | 27 | } |
Pinski1 | 0:34d1ce434420 | 28 | |
Pinski1 | 0:34d1ce434420 | 29 | float TB6612FNG::getSpeed(void) { |
Pinski1 | 0:34d1ce434420 | 30 | if(In2 == 0) return motorPWM * -1; |
Pinski1 | 0:34d1ce434420 | 31 | else return motorPWM; |
Pinski1 | 0:34d1ce434420 | 32 | } |
Pinski1 | 0:34d1ce434420 | 33 | |
Pinski1 | 0:34d1ce434420 | 34 | void TB6612FNG::operator= (float param) { |
Pinski1 | 0:34d1ce434420 | 35 | setSpeed(param); |
Pinski1 | 0:34d1ce434420 | 36 | } |
Pinski1 | 0:34d1ce434420 | 37 | |
Pinski1 | 0:34d1ce434420 | 38 | TB6612FNG::operator float() { |
Pinski1 | 0:34d1ce434420 | 39 | return getSpeed(); |
Pinski1 | 0:34d1ce434420 | 40 | // be nice if this operated for print statements |
Pinski1 | 0:34d1ce434420 | 41 | } |
Pinski1 | 0:34d1ce434420 | 42 |