Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
uStep.cpp@4:c80c7ea50a3c, 2017-01-21 (annotated)
- Committer:
- inovak1
- Date:
- Sat Jan 21 09:25:49 2017 +0000
- Revision:
- 4:c80c7ea50a3c
- Parent:
- 2:627a47c7f619
PURS project
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| inovak1 | 2:627a47c7f619 | 1 | #include "uStep.h" |
| inovak1 | 2:627a47c7f619 | 2 | #include "mbed.h" |
| inovak1 | 2:627a47c7f619 | 3 | |
| inovak1 | 2:627a47c7f619 | 4 | uStep::uStep(PinName FAZ1, PinName FAZ2, PinName FAZ3, PinName FAZ4) : _FAZ1(FAZ1), _FAZ2(FAZ2), _FAZ3(FAZ3), _FAZ4(FAZ4) //DEFINICIJA PINOVA MOTORA |
| inovak1 | 2:627a47c7f619 | 5 | { |
| inovak1 | 4:c80c7ea50a3c | 6 | i = 0; |
| inovak1 | 4:c80c7ea50a3c | 7 | trenutniKorak = 0; |
| inovak1 | 4:c80c7ea50a3c | 8 | maxKoraci = 0; |
| inovak1 | 4:c80c7ea50a3c | 9 | busy = false; |
| inovak1 | 2:627a47c7f619 | 10 | _FAZ1=0; |
| inovak1 | 2:627a47c7f619 | 11 | _FAZ2=0; |
| inovak1 | 2:627a47c7f619 | 12 | _FAZ3=0; |
| inovak1 | 2:627a47c7f619 | 13 | _FAZ4=0; |
| inovak1 | 2:627a47c7f619 | 14 | } |
| inovak1 | 2:627a47c7f619 | 15 | void uStep::step1() |
| inovak1 | 2:627a47c7f619 | 16 | { |
| inovak1 | 2:627a47c7f619 | 17 | _FAZ1=0; |
| inovak1 | 2:627a47c7f619 | 18 | _FAZ2=0; |
| inovak1 | 2:627a47c7f619 | 19 | _FAZ3=0; |
| inovak1 | 2:627a47c7f619 | 20 | _FAZ4=1; |
| inovak1 | 2:627a47c7f619 | 21 | } |
| inovak1 | 2:627a47c7f619 | 22 | void uStep::step2() |
| inovak1 | 2:627a47c7f619 | 23 | { |
| inovak1 | 2:627a47c7f619 | 24 | _FAZ1=0; |
| inovak1 | 2:627a47c7f619 | 25 | _FAZ2=0; |
| inovak1 | 2:627a47c7f619 | 26 | _FAZ3=1; |
| inovak1 | 2:627a47c7f619 | 27 | _FAZ4=1; |
| inovak1 | 2:627a47c7f619 | 28 | } |
| inovak1 | 2:627a47c7f619 | 29 | void uStep::step3() |
| inovak1 | 2:627a47c7f619 | 30 | { |
| inovak1 | 2:627a47c7f619 | 31 | _FAZ1=0; |
| inovak1 | 2:627a47c7f619 | 32 | _FAZ2=0; |
| inovak1 | 2:627a47c7f619 | 33 | _FAZ3=1; |
| inovak1 | 2:627a47c7f619 | 34 | _FAZ4=0; |
| inovak1 | 2:627a47c7f619 | 35 | } |
| inovak1 | 2:627a47c7f619 | 36 | void uStep::step4() |
| inovak1 | 2:627a47c7f619 | 37 | { |
| inovak1 | 2:627a47c7f619 | 38 | _FAZ1=0; |
| inovak1 | 2:627a47c7f619 | 39 | _FAZ2=1; |
| inovak1 | 2:627a47c7f619 | 40 | _FAZ3=1; |
| inovak1 | 2:627a47c7f619 | 41 | _FAZ4=0; |
| inovak1 | 2:627a47c7f619 | 42 | } |
| inovak1 | 2:627a47c7f619 | 43 | void uStep::step5() |
| inovak1 | 2:627a47c7f619 | 44 | { |
| inovak1 | 2:627a47c7f619 | 45 | _FAZ1=0; |
| inovak1 | 2:627a47c7f619 | 46 | _FAZ2=1; |
| inovak1 | 2:627a47c7f619 | 47 | _FAZ3=0; |
| inovak1 | 2:627a47c7f619 | 48 | _FAZ4=0; |
| inovak1 | 2:627a47c7f619 | 49 | } |
| inovak1 | 2:627a47c7f619 | 50 | void uStep::step6() |
| inovak1 | 2:627a47c7f619 | 51 | { |
| inovak1 | 2:627a47c7f619 | 52 | _FAZ1=1; |
| inovak1 | 2:627a47c7f619 | 53 | _FAZ2=1; |
| inovak1 | 2:627a47c7f619 | 54 | _FAZ3=0; |
| inovak1 | 2:627a47c7f619 | 55 | _FAZ4=0; |
| inovak1 | 2:627a47c7f619 | 56 | } |
| inovak1 | 2:627a47c7f619 | 57 | void uStep::step7() |
| inovak1 | 2:627a47c7f619 | 58 | { |
| inovak1 | 2:627a47c7f619 | 59 | _FAZ1=1; |
| inovak1 | 2:627a47c7f619 | 60 | _FAZ2=0; |
| inovak1 | 2:627a47c7f619 | 61 | _FAZ3=0; |
| inovak1 | 2:627a47c7f619 | 62 | _FAZ4=0; |
| inovak1 | 2:627a47c7f619 | 63 | } |
| inovak1 | 2:627a47c7f619 | 64 | void uStep::step8() |
| inovak1 | 2:627a47c7f619 | 65 | { |
| inovak1 | 2:627a47c7f619 | 66 | _FAZ1=1; |
| inovak1 | 2:627a47c7f619 | 67 | _FAZ2=0; |
| inovak1 | 2:627a47c7f619 | 68 | _FAZ3=0; |
| inovak1 | 2:627a47c7f619 | 69 | _FAZ4=1; |
| inovak1 | 2:627a47c7f619 | 70 | } |
| inovak1 | 4:c80c7ea50a3c | 71 | |
| inovak1 | 4:c80c7ea50a3c | 72 | void uStep::motorStop() |
| inovak1 | 4:c80c7ea50a3c | 73 | { |
| inovak1 | 4:c80c7ea50a3c | 74 | _FAZ1=0; |
| inovak1 | 4:c80c7ea50a3c | 75 | _FAZ2=0; |
| inovak1 | 4:c80c7ea50a3c | 76 | _FAZ3=0; |
| inovak1 | 4:c80c7ea50a3c | 77 | _FAZ4=0; |
| inovak1 | 4:c80c7ea50a3c | 78 | } |
| inovak1 | 4:c80c7ea50a3c | 79 | |
| inovak1 | 2:627a47c7f619 | 80 | void uStep::ooskz() // ROTIRAJ MOTOR U SMJERU OBRNUTOM D KAZALJKE NA SATU |
| inovak1 | 2:627a47c7f619 | 81 | { |
| inovak1 | 4:c80c7ea50a3c | 82 | switch(i) { |
| inovak1 | 4:c80c7ea50a3c | 83 | case 0: step1(); break; |
| inovak1 | 4:c80c7ea50a3c | 84 | case 1: step2(); break; |
| inovak1 | 4:c80c7ea50a3c | 85 | case 2: step3(); break; |
| inovak1 | 4:c80c7ea50a3c | 86 | case 3: step4(); break; |
| inovak1 | 4:c80c7ea50a3c | 87 | case 4: step5(); break; |
| inovak1 | 4:c80c7ea50a3c | 88 | case 5: step6(); break; |
| inovak1 | 4:c80c7ea50a3c | 89 | case 6: step7(); break; |
| inovak1 | 4:c80c7ea50a3c | 90 | case 7: step8(); break; |
| inovak1 | 2:627a47c7f619 | 91 | } |
| inovak1 | 4:c80c7ea50a3c | 92 | zbrojiZaJedan(); |
| inovak1 | 2:627a47c7f619 | 93 | } |
| inovak1 | 2:627a47c7f619 | 94 | |
| inovak1 | 2:627a47c7f619 | 95 | void uStep::skz() // ROTIRAJ MOTOR JEDNOM U SMJERU KAZALJKE NA SATU |
| inovak1 | 2:627a47c7f619 | 96 | { |
| inovak1 | 4:c80c7ea50a3c | 97 | switch(i) { |
| inovak1 | 4:c80c7ea50a3c | 98 | case 0: step8(); break; |
| inovak1 | 4:c80c7ea50a3c | 99 | case 1: step7(); break; |
| inovak1 | 4:c80c7ea50a3c | 100 | case 2: step6(); break; |
| inovak1 | 4:c80c7ea50a3c | 101 | case 3: step5(); break; |
| inovak1 | 4:c80c7ea50a3c | 102 | case 4: step4(); break; |
| inovak1 | 4:c80c7ea50a3c | 103 | case 5: step3(); break; |
| inovak1 | 4:c80c7ea50a3c | 104 | case 6: step2(); break; |
| inovak1 | 4:c80c7ea50a3c | 105 | case 7: step1(); break; |
| inovak1 | 4:c80c7ea50a3c | 106 | } |
| inovak1 | 4:c80c7ea50a3c | 107 | zbrojiZaJedan(); |
| inovak1 | 4:c80c7ea50a3c | 108 | } |
| inovak1 | 4:c80c7ea50a3c | 109 | void uStep::zbrojiZaJedan() |
| inovak1 | 4:c80c7ea50a3c | 110 | { |
| inovak1 | 4:c80c7ea50a3c | 111 | if (i < 7) |
| inovak1 | 4:c80c7ea50a3c | 112 | i++; |
| inovak1 | 4:c80c7ea50a3c | 113 | else { |
| inovak1 | 4:c80c7ea50a3c | 114 | i = 0; |
| inovak1 | 4:c80c7ea50a3c | 115 | trenutniKorak++; |
| inovak1 | 4:c80c7ea50a3c | 116 | } |
| inovak1 | 4:c80c7ea50a3c | 117 | |
| inovak1 | 4:c80c7ea50a3c | 118 | if (trenutniKorak >= maxKoraci) |
| inovak1 | 4:c80c7ea50a3c | 119 | { |
| inovak1 | 4:c80c7ea50a3c | 120 | steptick.detach(); |
| inovak1 | 4:c80c7ea50a3c | 121 | motorStop(); |
| inovak1 | 4:c80c7ea50a3c | 122 | trenutniKorak = 0; |
| inovak1 | 4:c80c7ea50a3c | 123 | busy = false; |
| inovak1 | 2:627a47c7f619 | 124 | } |
| inovak1 | 2:627a47c7f619 | 125 | } |
| inovak1 | 2:627a47c7f619 | 126 | |
| inovak1 | 4:c80c7ea50a3c | 127 | void uStep::step(int koraci, int smjer, float brzina) // FUNKCIJA STEP MOTORA (BROJ KORAKA, SMJER VRTNJE, BRZINA VRTNJE) |
| inovak1 | 2:627a47c7f619 | 128 | { |
| inovak1 | 4:c80c7ea50a3c | 129 | motorStop(); |
| inovak1 | 4:c80c7ea50a3c | 130 | i = 0; |
| inovak1 | 4:c80c7ea50a3c | 131 | trenutniKorak = 0; |
| inovak1 | 4:c80c7ea50a3c | 132 | busy = true; |
| inovak1 | 4:c80c7ea50a3c | 133 | maxKoraci = koraci; |
| inovak1 | 4:c80c7ea50a3c | 134 | motorbrzina = brzina; //POSTAVLJANJE BRZINE MOTORA |
| inovak1 | 4:c80c7ea50a3c | 135 | if (smjer == 0) // OKRETANJE U SMJERU KAZALJKE NA SATU |
| inovak1 | 4:c80c7ea50a3c | 136 | { |
| inovak1 | 4:c80c7ea50a3c | 137 | steptick.attach(this, &uStep::skz, motorbrzina); |
| inovak1 | 4:c80c7ea50a3c | 138 | skz(); |
| inovak1 | 4:c80c7ea50a3c | 139 | } |
| inovak1 | 2:627a47c7f619 | 140 | else if (smjer==1)// OKRETANJE OBRNUTO OD KAZALJKE NA SATU |
| inovak1 | 4:c80c7ea50a3c | 141 | { |
| inovak1 | 4:c80c7ea50a3c | 142 | steptick.attach(this, &uStep::ooskz, motorbrzina); |
| inovak1 | 4:c80c7ea50a3c | 143 | ooskz(); |
| inovak1 | 4:c80c7ea50a3c | 144 | } |
| inovak1 | 2:627a47c7f619 | 145 | |
| inovak1 | 4:c80c7ea50a3c | 146 | } |
| inovak1 | 4:c80c7ea50a3c | 147 | |
| inovak1 | 4:c80c7ea50a3c | 148 | bool uStep::isRunning() |
| inovak1 | 4:c80c7ea50a3c | 149 | { |
| inovak1 | 4:c80c7ea50a3c | 150 | return busy; |
| inovak1 | 2:627a47c7f619 | 151 | } |