Racunjanje brzine vrtnje enkodera
Diff: Bvrtnje.cpp
- Revision:
- 0:e22f491b10f1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Bvrtnje.cpp Tue Feb 11 09:55:29 2020 +0000 @@ -0,0 +1,90 @@ +#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; +}; +