mbed device driver for Toshiba TB6612FNG motor driver

Dependents:   ROBot TB6612FNG_Sample TB6612FNG_Sample

Committer:
rabad1
Date:
Sun Nov 24 21:47:54 2013 +0000
Revision:
0:1a07771ff613
Child:
1:8f562bdd5e93
initial release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rabad1 0:1a07771ff613 1 /* File: TB6612FNG.h
rabad1 0:1a07771ff613 2 * Author: Robert Abad Copyright (c) 2013
rabad1 0:1a07771ff613 3 *
rabad1 0:1a07771ff613 4 * Desc: driver for TB6612FNG Motor Driver. For further details see
rabad1 0:1a07771ff613 5 * header file, TB6612FNG.h
rabad1 0:1a07771ff613 6 */
rabad1 0:1a07771ff613 7
rabad1 0:1a07771ff613 8 #include "mbed.h"
rabad1 0:1a07771ff613 9 #include "TB6612FNG.h"
rabad1 0:1a07771ff613 10
rabad1 0:1a07771ff613 11 #define SIGNAL_HIGH (1)
rabad1 0:1a07771ff613 12 #define SIGNAL_LOW (0)
rabad1 0:1a07771ff613 13
rabad1 0:1a07771ff613 14 TB6612FNG::TB6612FNG( PinName pinPwmA, PinName pinAin1, PinName pinAin2,
rabad1 0:1a07771ff613 15 PinName pinPwmB, PinName pinBin1, PinName pinBin2,
rabad1 0:1a07771ff613 16 PinName pinNStby ) :
rabad1 0:1a07771ff613 17 pwmA(pinPwmA),
rabad1 0:1a07771ff613 18 Ain1(pinAin1),
rabad1 0:1a07771ff613 19 Ain2(pinAin2),
rabad1 0:1a07771ff613 20 pwmB(pinPwmB),
rabad1 0:1a07771ff613 21 Bin1(pinBin1),
rabad1 0:1a07771ff613 22 Bin2(pinBin2),
rabad1 0:1a07771ff613 23 nStby(pinNStby)
rabad1 0:1a07771ff613 24 {
rabad1 0:1a07771ff613 25 Ain1 = SIGNAL_LOW;
rabad1 0:1a07771ff613 26 Ain2 = SIGNAL_LOW;
rabad1 0:1a07771ff613 27 Bin1 = SIGNAL_LOW;
rabad1 0:1a07771ff613 28 Bin2 = SIGNAL_LOW;
rabad1 0:1a07771ff613 29 pwmA.period(TB6612FNG_PWM_PERIOD_DEFAULT);
rabad1 0:1a07771ff613 30 pwmA = TB6612FNG_PWM_PULSEWIDTH_DEFAULT;
rabad1 0:1a07771ff613 31 pwmB.period(TB6612FNG_PWM_PERIOD_DEFAULT);
rabad1 0:1a07771ff613 32 pwmB = TB6612FNG_PWM_PULSEWIDTH_DEFAULT;
rabad1 0:1a07771ff613 33 nStby = SIGNAL_LOW;
rabad1 0:1a07771ff613 34 }
rabad1 0:1a07771ff613 35
rabad1 0:1a07771ff613 36 void TB6612FNG::setPwmAperiod(float fPeriod)
rabad1 0:1a07771ff613 37 {
rabad1 0:1a07771ff613 38 pwmA.period(fPeriod);
rabad1 0:1a07771ff613 39 }
rabad1 0:1a07771ff613 40
rabad1 0:1a07771ff613 41 void TB6612FNG::setPwmApulsewidth(float fPulsewidth)
rabad1 0:1a07771ff613 42 {
rabad1 0:1a07771ff613 43 pwmA = fPulsewidth;
rabad1 0:1a07771ff613 44 }
rabad1 0:1a07771ff613 45
rabad1 0:1a07771ff613 46 void TB6612FNG::setPwmBperiod(float fPeriod)
rabad1 0:1a07771ff613 47 {
rabad1 0:1a07771ff613 48 pwmB.period(fPeriod);
rabad1 0:1a07771ff613 49 }
rabad1 0:1a07771ff613 50
rabad1 0:1a07771ff613 51 void TB6612FNG::setPwmBpulsewidth(float fPulsewidth)
rabad1 0:1a07771ff613 52 {
rabad1 0:1a07771ff613 53 pwmB = fPulsewidth;
rabad1 0:1a07771ff613 54 }
rabad1 0:1a07771ff613 55
rabad1 0:1a07771ff613 56 void TB6612FNG::standby(void)
rabad1 0:1a07771ff613 57 {
rabad1 0:1a07771ff613 58 nStby = SIGNAL_LOW;
rabad1 0:1a07771ff613 59 }
rabad1 0:1a07771ff613 60
rabad1 0:1a07771ff613 61 void TB6612FNG::motorA_stop(void)
rabad1 0:1a07771ff613 62 {
rabad1 0:1a07771ff613 63 Ain1 = SIGNAL_LOW;
rabad1 0:1a07771ff613 64 Ain2 = SIGNAL_LOW;
rabad1 0:1a07771ff613 65 }
rabad1 0:1a07771ff613 66
rabad1 0:1a07771ff613 67 void TB6612FNG::motorA_ccw(void)
rabad1 0:1a07771ff613 68 {
rabad1 0:1a07771ff613 69 Ain1 = SIGNAL_LOW;
rabad1 0:1a07771ff613 70 Ain2 = SIGNAL_HIGH;
rabad1 0:1a07771ff613 71 nStby = SIGNAL_HIGH;
rabad1 0:1a07771ff613 72 }
rabad1 0:1a07771ff613 73
rabad1 0:1a07771ff613 74 void TB6612FNG::motorA_cw(void)
rabad1 0:1a07771ff613 75 {
rabad1 0:1a07771ff613 76 Ain1 = SIGNAL_HIGH;
rabad1 0:1a07771ff613 77 Ain2 = SIGNAL_LOW;
rabad1 0:1a07771ff613 78 nStby = SIGNAL_HIGH;
rabad1 0:1a07771ff613 79 }
rabad1 0:1a07771ff613 80
rabad1 0:1a07771ff613 81 void TB6612FNG::motorB_stop(void)
rabad1 0:1a07771ff613 82 {
rabad1 0:1a07771ff613 83 Bin1 = SIGNAL_LOW;
rabad1 0:1a07771ff613 84 Bin2 = SIGNAL_LOW;
rabad1 0:1a07771ff613 85 }
rabad1 0:1a07771ff613 86
rabad1 0:1a07771ff613 87 void TB6612FNG::motorB_ccw(void)
rabad1 0:1a07771ff613 88 {
rabad1 0:1a07771ff613 89 Bin1 = SIGNAL_LOW;
rabad1 0:1a07771ff613 90 Bin2 = SIGNAL_HIGH;
rabad1 0:1a07771ff613 91 nStby = SIGNAL_HIGH;
rabad1 0:1a07771ff613 92 }
rabad1 0:1a07771ff613 93
rabad1 0:1a07771ff613 94 void TB6612FNG::motorB_cw(void)
rabad1 0:1a07771ff613 95 {
rabad1 0:1a07771ff613 96 Bin1 = SIGNAL_HIGH;
rabad1 0:1a07771ff613 97 Bin2 = SIGNAL_LOW;
rabad1 0:1a07771ff613 98 nStby = SIGNAL_HIGH;
rabad1 0:1a07771ff613 99 }
rabad1 0:1a07771ff613 100