My modifications/additions to the code

Dependencies:   ADXL345 ADXL345_I2C IMUfilter ITG3200 Servo fishgait mbed-rtos mbed pixy_cam

Fork of robotic_fish_ver_4_8 by jetfishteam

motor_controller.cpp

Committer:
sandwich
Date:
2014-01-28
Revision:
5:090ef6275773
Parent:
0:ff9bc5f69c57
Child:
6:a4d6f3e4bf28

File content as of revision 5:090ef6275773:

#include "motor_controller.h"

PololuMController::PololuMController(PinName pwmport, PinName A, PinName B)
{
    pwm=new PwmOut(pwmport);
    outA=new DigitalOut(A);
    outB=new DigitalOut(B);
    outA->write(0);
    outB->write(1);
    timestamp=0;
}

PololuMController::~PololuMController()
{
    delete pwm;
    delete outA;
    delete outB;
}

void PololuMController::setspeed(float speed)
{
    pwm->write(speed);
    return;
}

void PololuMController::setpolarspeed(float speed)
{
    if (speed>=0)
    {
        outA->write(0);
        outB->write(1);
        pwm->write(abs(speed));
    }
    else
    {
        outA->write(1);
        outB->write(0);
        pwm->write(abs(speed));
    }
    return;
}

void PololuMController::reverse()
{
    outA->write(!(outA->read()));
    outB->write(!(outB->read()));
    return;
}

void PololuMController::drive_sinusoidal(float cur_time, float a, float w, float phi)
{
    setpolarspeed(a*sin(w*cur_time+phi));
    return;
}