Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: Motordriver PixelArray RemoteIR
motor/TB6612FNG.cpp@94:9050bb458b00, 2019-06-16 (annotated)
- Committer:
- yangyejin
- Date:
- Sun Jun 16 16:40:51 2019 +0000
- Revision:
- 94:9050bb458b00
alphabot
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| yangyejin | 94:9050bb458b00 | 1 | /* File: TB6612FNG.h |
| yangyejin | 94:9050bb458b00 | 2 | * Author: Robert Abad Copyright (c) 2013 |
| yangyejin | 94:9050bb458b00 | 3 | * |
| yangyejin | 94:9050bb458b00 | 4 | * Desc: driver for TB6612FNG Motor Driver. For further details see |
| yangyejin | 94:9050bb458b00 | 5 | * header file, TB6612FNG.h |
| yangyejin | 94:9050bb458b00 | 6 | */ |
| yangyejin | 94:9050bb458b00 | 7 | |
| yangyejin | 94:9050bb458b00 | 8 | #include "mbed.h" |
| yangyejin | 94:9050bb458b00 | 9 | #include "TB6612FNG.h" |
| yangyejin | 94:9050bb458b00 | 10 | |
| yangyejin | 94:9050bb458b00 | 11 | #define SIGNAL_HIGH (1) |
| yangyejin | 94:9050bb458b00 | 12 | #define SIGNAL_LOW (0) |
| yangyejin | 94:9050bb458b00 | 13 | |
| yangyejin | 94:9050bb458b00 | 14 | TB6612FNG::TB6612FNG( PinName pinPwmA, PinName pinAin1, PinName pinAin2, |
| yangyejin | 94:9050bb458b00 | 15 | PinName pinPwmB, PinName pinBin1, PinName pinBin2, |
| yangyejin | 94:9050bb458b00 | 16 | PinName pinNStby ) : |
| yangyejin | 94:9050bb458b00 | 17 | pwmA(pinPwmA), |
| yangyejin | 94:9050bb458b00 | 18 | Ain1(pinAin1), |
| yangyejin | 94:9050bb458b00 | 19 | Ain2(pinAin2), |
| yangyejin | 94:9050bb458b00 | 20 | pwmB(pinPwmB), |
| yangyejin | 94:9050bb458b00 | 21 | Bin1(pinBin1), |
| yangyejin | 94:9050bb458b00 | 22 | Bin2(pinBin2), |
| yangyejin | 94:9050bb458b00 | 23 | nStby(pinNStby) |
| yangyejin | 94:9050bb458b00 | 24 | { |
| yangyejin | 94:9050bb458b00 | 25 | Ain1 = SIGNAL_LOW; |
| yangyejin | 94:9050bb458b00 | 26 | Ain2 = SIGNAL_LOW; |
| yangyejin | 94:9050bb458b00 | 27 | Bin1 = SIGNAL_LOW; |
| yangyejin | 94:9050bb458b00 | 28 | Bin2 = SIGNAL_LOW; |
| yangyejin | 94:9050bb458b00 | 29 | pwmA.period(TB6612FNG_PWM_PERIOD_DEFAULT); |
| yangyejin | 94:9050bb458b00 | 30 | pwmA = TB6612FNG_PWM_PULSEWIDTH_DEFAULT; |
| yangyejin | 94:9050bb458b00 | 31 | pwmB.period(TB6612FNG_PWM_PERIOD_DEFAULT); |
| yangyejin | 94:9050bb458b00 | 32 | pwmB = TB6612FNG_PWM_PULSEWIDTH_DEFAULT; |
| yangyejin | 94:9050bb458b00 | 33 | nStby = SIGNAL_LOW; |
| yangyejin | 94:9050bb458b00 | 34 | } |
| yangyejin | 94:9050bb458b00 | 35 | |
| yangyejin | 94:9050bb458b00 | 36 | void TB6612FNG::setPwmA(float fPeriod, float fPulsewidth) |
| yangyejin | 94:9050bb458b00 | 37 | { |
| yangyejin | 94:9050bb458b00 | 38 | pwmA.period(fPeriod); |
| yangyejin | 94:9050bb458b00 | 39 | pwmA = fPulsewidth; |
| yangyejin | 94:9050bb458b00 | 40 | } |
| yangyejin | 94:9050bb458b00 | 41 | |
| yangyejin | 94:9050bb458b00 | 42 | void TB6612FNG::setPwmAperiod(float fPeriod) |
| yangyejin | 94:9050bb458b00 | 43 | { |
| yangyejin | 94:9050bb458b00 | 44 | pwmA.period(fPeriod); |
| yangyejin | 94:9050bb458b00 | 45 | } |
| yangyejin | 94:9050bb458b00 | 46 | |
| yangyejin | 94:9050bb458b00 | 47 | void TB6612FNG::setPwmApulsewidth(float fPulsewidth) |
| yangyejin | 94:9050bb458b00 | 48 | { |
| yangyejin | 94:9050bb458b00 | 49 | pwmA = fPulsewidth; |
| yangyejin | 94:9050bb458b00 | 50 | } |
| yangyejin | 94:9050bb458b00 | 51 | |
| yangyejin | 94:9050bb458b00 | 52 | void TB6612FNG::setPwmB(float fPeriod, float fPulsewidth) |
| yangyejin | 94:9050bb458b00 | 53 | { |
| yangyejin | 94:9050bb458b00 | 54 | pwmB.period(fPeriod); |
| yangyejin | 94:9050bb458b00 | 55 | pwmB = fPulsewidth; |
| yangyejin | 94:9050bb458b00 | 56 | } |
| yangyejin | 94:9050bb458b00 | 57 | |
| yangyejin | 94:9050bb458b00 | 58 | void TB6612FNG::setPwmBperiod(float fPeriod) |
| yangyejin | 94:9050bb458b00 | 59 | { |
| yangyejin | 94:9050bb458b00 | 60 | pwmB.period(fPeriod); |
| yangyejin | 94:9050bb458b00 | 61 | } |
| yangyejin | 94:9050bb458b00 | 62 | |
| yangyejin | 94:9050bb458b00 | 63 | void TB6612FNG::setPwmBpulsewidth(float fPulsewidth) |
| yangyejin | 94:9050bb458b00 | 64 | { |
| yangyejin | 94:9050bb458b00 | 65 | pwmB = fPulsewidth; |
| yangyejin | 94:9050bb458b00 | 66 | } |
| yangyejin | 94:9050bb458b00 | 67 | |
| yangyejin | 94:9050bb458b00 | 68 | void TB6612FNG::standby(void) |
| yangyejin | 94:9050bb458b00 | 69 | { |
| yangyejin | 94:9050bb458b00 | 70 | nStby = SIGNAL_LOW; |
| yangyejin | 94:9050bb458b00 | 71 | } |
| yangyejin | 94:9050bb458b00 | 72 | |
| yangyejin | 94:9050bb458b00 | 73 | void TB6612FNG::motorA_stop(void) |
| yangyejin | 94:9050bb458b00 | 74 | { |
| yangyejin | 94:9050bb458b00 | 75 | Ain1 = SIGNAL_LOW; |
| yangyejin | 94:9050bb458b00 | 76 | Ain2 = SIGNAL_LOW; |
| yangyejin | 94:9050bb458b00 | 77 | } |
| yangyejin | 94:9050bb458b00 | 78 | |
| yangyejin | 94:9050bb458b00 | 79 | void TB6612FNG::motorA_ccw(void) |
| yangyejin | 94:9050bb458b00 | 80 | { |
| yangyejin | 94:9050bb458b00 | 81 | Ain1 = SIGNAL_LOW; |
| yangyejin | 94:9050bb458b00 | 82 | Ain2 = SIGNAL_HIGH; |
| yangyejin | 94:9050bb458b00 | 83 | nStby = SIGNAL_HIGH; |
| yangyejin | 94:9050bb458b00 | 84 | } |
| yangyejin | 94:9050bb458b00 | 85 | |
| yangyejin | 94:9050bb458b00 | 86 | void TB6612FNG::motorA_cw(void) |
| yangyejin | 94:9050bb458b00 | 87 | { |
| yangyejin | 94:9050bb458b00 | 88 | Ain1 = SIGNAL_HIGH; |
| yangyejin | 94:9050bb458b00 | 89 | Ain2 = SIGNAL_LOW; |
| yangyejin | 94:9050bb458b00 | 90 | nStby = SIGNAL_HIGH; |
| yangyejin | 94:9050bb458b00 | 91 | } |
| yangyejin | 94:9050bb458b00 | 92 | |
| yangyejin | 94:9050bb458b00 | 93 | void TB6612FNG::motorB_stop(void) |
| yangyejin | 94:9050bb458b00 | 94 | { |
| yangyejin | 94:9050bb458b00 | 95 | Bin1 = SIGNAL_LOW; |
| yangyejin | 94:9050bb458b00 | 96 | Bin2 = SIGNAL_LOW; |
| yangyejin | 94:9050bb458b00 | 97 | } |
| yangyejin | 94:9050bb458b00 | 98 | |
| yangyejin | 94:9050bb458b00 | 99 | void TB6612FNG::motorB_ccw(void) |
| yangyejin | 94:9050bb458b00 | 100 | { |
| yangyejin | 94:9050bb458b00 | 101 | Bin1 = SIGNAL_LOW; |
| yangyejin | 94:9050bb458b00 | 102 | Bin2 = SIGNAL_HIGH; |
| yangyejin | 94:9050bb458b00 | 103 | nStby = SIGNAL_HIGH; |
| yangyejin | 94:9050bb458b00 | 104 | } |
| yangyejin | 94:9050bb458b00 | 105 | |
| yangyejin | 94:9050bb458b00 | 106 | void TB6612FNG::motorB_cw(void) |
| yangyejin | 94:9050bb458b00 | 107 | { |
| yangyejin | 94:9050bb458b00 | 108 | Bin1 = SIGNAL_HIGH; |
| yangyejin | 94:9050bb458b00 | 109 | Bin2 = SIGNAL_LOW; |
| yangyejin | 94:9050bb458b00 | 110 | nStby = SIGNAL_HIGH; |
| yangyejin | 94:9050bb458b00 | 111 | } |
| yangyejin | 94:9050bb458b00 | 112 |