Motor

Dependents:   Nucleo_spi 2015_denziben_i2c_S2 Nucleo_Motor Nucleo_Motor ... more

Motor.cpp

Committer:
kikoaac
Date:
2015-10-30
Revision:
4:56a1159c881c
Parent:
3:dea2df71cb97
Child:
5:3b639d84a95d

File content as of revision 4:56a1159c881c:

/**
 * Includes
 */
#include "Motor.h"
Motor::Motor(const Motor& m):
    motor(m.Pin[0],m.Pin[1],m.Pin[2],m.Pin[3]),PwmPin(m.Pin[4])
{
    bias=0.0;
    max=m.max;
    //this
    PwmPin.period_ms(20);
    run(Stop,1);
}

Motor::Motor(PinName _pin_h1, PinName _pin_g2, PinName _pin_g1, PinName _pin_h2,PinName _pwm) :
    motor(_pin_h1,_pin_g2,_pin_g1,_pin_h2),PwmPin(_pwm)
{
     Pin[0] = _pin_h1;
    Pin[1] = _pin_g2;
    Pin[2] = _pin_g1;
    Pin[3] = _pin_h2;
    Pin[4] = _pwm;
    max=1.0;
    //this
    PwmPin.period_ms(10);
    run(Stop,1);
}
void Motor::run(int i,float duty)
{
    //static int state;
    Duty = (float)duty*max+bias;
    //printf("Duty %f \n",(float)duty);
    //if(state==i)return;
    PwmPin = Duty;
    if(state==i)return;
    motor=0;
    //wait_us(20);
    /*t.start();
    t.reset();
    while(t.read_us()>=20);*/
    wait_us(200);
    if(i==Front) motor=0x01|0x04;
    else if(i==Back) motor=0x02|0x08;
    else if(i==Stop) motor=0x01|0x08;
    else if(i==Free) motor=0x00|0x00;
    else motor=0;
    state=i;
}