Racunjanje brzine vrtnje enkodera

Bvrtnje.cpp

Committer:
mlucan
Date:
2020-02-11
Revision:
0:e22f491b10f1

File content as of revision 0:e22f491b10f1:

#include "Bvrtnje.h"
#include "mbed.h"

int b1;
int okr1;
int b2;
int r1, r2;
int f;
int brzina_1;
int brzina_2;
bool smot;
Ticker brzina;

Bvrtnje::Bvrtnje(PinName pin1,PinName pin2) :int1(pin1),int2(pin2)
{
    void speed();
    void k_1();
    void d_1();
    void k_2();
    void d_2();
    brzina.attach(&speed, 0.5);
    int1.rise(&k_1);
    int1.fall(&d_1);
    int2.rise(&k_2);
    int2.fall(&d_2);
};


int Bvrtnje::brzina1()
{
    return brzina_1;
}

int Bvrtnje:: brzina2()
{
    return brzina_2;
}

int Bvrtnje::frekvencija()
{
    return f;
}

bool Bvrtnje::smjer ()
{
    return smot;
}

void k_1()
{
    b1=b1+1;
    r1=1;
    if(r2==0) {
        smot=1;
    }

};

void k_2()
{
    b2=b2+1;
    r2=1;
    if(r1==0) {
        smot=0;
    }
};

void d_1()
{
    r1=0;
};

void d_2()
{
    r2=0;
};

void speed()
{
    brzina_1= (b1/600)*120; // 500ms ticker
    brzina_2= (b2/600)*120;
    if(b1>0) {
        f=(b1)*2;
    } else {
        f=0;
    }
    b1=0;
    b2=0;
};