mbed device driver for Toshiba TB6612FNG motor driver
Dependents: ROBot TB6612FNG_Sample TB6612FNG_Sample
TB6612FNG.cpp
- Committer:
- rabad1
- Date:
- 2013-12-02
- Revision:
- 1:8f562bdd5e93
- Parent:
- 0:1a07771ff613
File content as of revision 1:8f562bdd5e93:
/* File: TB6612FNG.h
* Author: Robert Abad Copyright (c) 2013
*
* Desc: driver for TB6612FNG Motor Driver. For further details see
* header file, TB6612FNG.h
*/
#include "mbed.h"
#include "TB6612FNG.h"
#define SIGNAL_HIGH (1)
#define SIGNAL_LOW (0)
TB6612FNG::TB6612FNG( PinName pinPwmA, PinName pinAin1, PinName pinAin2,
PinName pinPwmB, PinName pinBin1, PinName pinBin2,
PinName pinNStby ) :
pwmA(pinPwmA),
Ain1(pinAin1),
Ain2(pinAin2),
pwmB(pinPwmB),
Bin1(pinBin1),
Bin2(pinBin2),
nStby(pinNStby)
{
Ain1 = SIGNAL_LOW;
Ain2 = SIGNAL_LOW;
Bin1 = SIGNAL_LOW;
Bin2 = SIGNAL_LOW;
pwmA.period(TB6612FNG_PWM_PERIOD_DEFAULT);
pwmA = TB6612FNG_PWM_PULSEWIDTH_DEFAULT;
pwmB.period(TB6612FNG_PWM_PERIOD_DEFAULT);
pwmB = TB6612FNG_PWM_PULSEWIDTH_DEFAULT;
nStby = SIGNAL_LOW;
}
void TB6612FNG::setPwmA(float fPeriod, float fPulsewidth)
{
pwmA.period(fPeriod);
pwmA = fPulsewidth;
}
void TB6612FNG::setPwmAperiod(float fPeriod)
{
pwmA.period(fPeriod);
}
void TB6612FNG::setPwmApulsewidth(float fPulsewidth)
{
pwmA = fPulsewidth;
}
void TB6612FNG::setPwmB(float fPeriod, float fPulsewidth)
{
pwmB.period(fPeriod);
pwmB = fPulsewidth;
}
void TB6612FNG::setPwmBperiod(float fPeriod)
{
pwmB.period(fPeriod);
}
void TB6612FNG::setPwmBpulsewidth(float fPulsewidth)
{
pwmB = fPulsewidth;
}
void TB6612FNG::standby(void)
{
nStby = SIGNAL_LOW;
}
void TB6612FNG::motorA_stop(void)
{
Ain1 = SIGNAL_LOW;
Ain2 = SIGNAL_LOW;
}
void TB6612FNG::motorA_ccw(void)
{
Ain1 = SIGNAL_LOW;
Ain2 = SIGNAL_HIGH;
nStby = SIGNAL_HIGH;
}
void TB6612FNG::motorA_cw(void)
{
Ain1 = SIGNAL_HIGH;
Ain2 = SIGNAL_LOW;
nStby = SIGNAL_HIGH;
}
void TB6612FNG::motorB_stop(void)
{
Bin1 = SIGNAL_LOW;
Bin2 = SIGNAL_LOW;
}
void TB6612FNG::motorB_ccw(void)
{
Bin1 = SIGNAL_LOW;
Bin2 = SIGNAL_HIGH;
nStby = SIGNAL_HIGH;
}
void TB6612FNG::motorB_cw(void)
{
Bin1 = SIGNAL_HIGH;
Bin2 = SIGNAL_LOW;
nStby = SIGNAL_HIGH;
}