Racunjanje brzine vrtnje enkodera

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;
+};
+