PURS / uStep
Revision:
2:627a47c7f619
Child:
4:c80c7ea50a3c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uStep.cpp	Sat Jan 14 18:03:55 2017 +0000
@@ -0,0 +1,167 @@
+#include "uStep.h"
+#include "mbed.h"
+int motorbrzina; // BRZINA STEP MOTORA
+Ticker steptick;
+
+uStep::uStep(PinName FAZ1, PinName FAZ2, PinName FAZ3, PinName FAZ4) : _FAZ1(FAZ1), _FAZ2(FAZ2), _FAZ3(FAZ3), _FAZ4(FAZ4)   //DEFINICIJA PINOVA MOTORA
+{
+    _FAZ1=0;
+    _FAZ2=0;
+    _FAZ3=0;
+    _FAZ4=0;
+}
+void uStep::step1()
+{
+    _FAZ1=0;
+    _FAZ2=0;
+    _FAZ3=0;
+    _FAZ4=1;
+}
+void uStep::step2()
+{
+    _FAZ1=0;
+    _FAZ2=0;
+    _FAZ3=1;
+    _FAZ4=1;
+}
+void uStep::step3()
+{
+    _FAZ1=0;
+    _FAZ2=0;
+    _FAZ3=1;
+    _FAZ4=0;
+}
+void uStep::step4()
+{
+    _FAZ1=0;
+    _FAZ2=1;
+    _FAZ3=1;
+    _FAZ4=0;
+}
+void uStep::step5()
+{
+    _FAZ1=0;
+    _FAZ2=1;
+    _FAZ3=0;
+    _FAZ4=0;
+}
+void uStep::step6()
+{
+    _FAZ1=1;
+    _FAZ2=1;
+    _FAZ3=0;
+    _FAZ4=0;
+}
+void uStep::step7()
+{
+    _FAZ1=1;
+    _FAZ2=0;
+    _FAZ3=0;
+    _FAZ4=0;
+}
+void uStep::step8()
+{
+    _FAZ1=1;
+    _FAZ2=0;
+    _FAZ3=0;
+    _FAZ4=1;
+}
+void uStep::ooskz()   // ROTIRAJ MOTOR U SMJERU OBRNUTOM D KAZALJKE NA SATU
+{
+    for (int i = 0; i <= 7; i++) {
+        switch (i) { // AKTIVIRAJTE FAZE ( FAZ1, FAZ3, FAZ4, FAZ4)  U BINARNOJ SEKVENCI ZA KORAKE
+            case 0: {
+                steptick.attach(this,&uStep::step1 ,motorbrzina);
+            }
+            break;
+            case 1: {
+                steptick.attach(this,&uStep::step2 ,motorbrzina);
+            }
+            break;
+            case 2: {
+                steptick.attach(this,&uStep::step3,motorbrzina);
+            }
+            break;
+            case 3: {
+                steptick.attach(this,&uStep::step4,motorbrzina);
+            }
+            break;
+            case 4: {
+                steptick.attach(this,&uStep::step5 ,motorbrzina);
+            }
+            break;
+            case 5: {
+                steptick.attach(this,&uStep::step6 ,motorbrzina);
+            }
+            break;
+            case 6: {
+                steptick.attach(this,&uStep::step7 ,motorbrzina);
+            }
+            break;
+            case 7: {
+                steptick.attach(this,&uStep::step8 ,motorbrzina);
+            }
+            break;
+        }
+                steptick.detach();
+    }
+}
+
+void uStep::skz()   // ROTIRAJ MOTOR JEDNOM U SMJERU KAZALJKE NA SATU
+{
+    for (int i = 0; i <= 7; i++) {
+
+        switch (i) {
+           case 0: {
+                steptick.attach(this,&uStep::step8 ,motorbrzina);
+            }
+            break;
+            case 1: {
+                steptick.attach(this,&uStep::step7 ,motorbrzina);
+            }
+            break;
+            case 2: {
+                steptick.attach(this,&uStep::step6 ,motorbrzina);
+            }
+            break;
+            case 3: {
+                steptick.attach(this,&uStep::step5 ,motorbrzina);
+            }
+            break;
+            case 4: {
+                steptick.attach(this,&uStep::step4 ,motorbrzina);
+            }
+            break;
+            case 5: {
+                steptick.attach(this,&uStep::step3 ,motorbrzina);
+            }
+            break;
+            case 6: {
+                steptick.attach(this,&uStep::step2 ,motorbrzina);
+            }
+            break;
+            case 7: {
+                steptick.attach(this,&uStep::step1 ,motorbrzina);
+            }
+            break;
+        }
+                steptick.detach();
+    }
+}
+
+void uStep::step(int koraci, int smjer, int brzina)  // FUNKCIJA STEP MOTORA (BROJ KORAKA, SMJER VRTNJE, BRZINA VRTNJE)
+{
+    int count=0; // INICIJALIZCIJA BROJACA KORAKA
+    motorbrzina=brzina; //POSTAVLJANJE BRZINE MOTORA
+    if (smjer==0) // OKRETANJE U SMJERU KAZALJKE NA SATU
+        do {
+            skz();
+            count++;
+        } while (count<koraci); // turn number of steps applied
+    else if (smjer==1)// OKRETANJE OBRNUTO OD KAZALJKE NA SATU
+        do {
+            ooskz();
+            count++;
+        } while (count<koraci);// IZVODI ODABRANI BROJ KORAKA
+
+}
\ No newline at end of file