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.
Fork of MotorControl by
main.cpp@4:4d655fdae399, 2016-04-13 (annotated)
- Committer:
- mjhaugsdal
- Date:
- Wed Apr 13 10:10:23 2016 +0000
- Revision:
- 4:4d655fdae399
- Parent:
- 3:15be78948724
- Child:
- 5:fdc7a779d525
Made new cases for m_cmd to control speed and direction in the same case;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| rlanghbv | 0:bd78e433db61 | 1 | #include "mbed.h" |
| mjhaugsdal | 1:a3287196a9b3 | 2 | #include "rtos.h" |
| rlanghbv | 0:bd78e433db61 | 3 | |
| rlanghbv | 2:25bcc26f7a5b | 4 | Serial pc(USBTX, USBRX); // tx, rx |
| rlanghbv | 0:bd78e433db61 | 5 | |
| mjhaugsdal | 1:a3287196a9b3 | 6 | //Analog Pins |
| rlanghbv | 0:bd78e433db61 | 7 | DigitalOut IN1(D3); |
| rlanghbv | 0:bd78e433db61 | 8 | DigitalOut IN2(D4); |
| rlanghbv | 0:bd78e433db61 | 9 | DigitalOut IN3(D5); |
| rlanghbv | 0:bd78e433db61 | 10 | DigitalOut IN4(D6); |
| rlanghbv | 0:bd78e433db61 | 11 | |
| mjhaugsdal | 1:a3287196a9b3 | 12 | static int fart = 1000; |
| mjhaugsdal | 3:15be78948724 | 13 | static char m_cmd = 'x'; |
| rlanghbv | 0:bd78e433db61 | 14 | |
| rlanghbv | 0:bd78e433db61 | 15 | |
| rlanghbv | 0:bd78e433db61 | 16 | void step4Right() |
| rlanghbv | 0:bd78e433db61 | 17 | { |
| rlanghbv | 0:bd78e433db61 | 18 | IN1=0; |
| rlanghbv | 0:bd78e433db61 | 19 | IN2=1; |
| rlanghbv | 0:bd78e433db61 | 20 | IN3=0; |
| rlanghbv | 0:bd78e433db61 | 21 | IN4=1; |
| mjhaugsdal | 1:a3287196a9b3 | 22 | wait_us(fart); //legg som global variabel "fart" |
| rlanghbv | 0:bd78e433db61 | 23 | IN1=0; |
| rlanghbv | 0:bd78e433db61 | 24 | IN2=1; |
| rlanghbv | 0:bd78e433db61 | 25 | IN3=1; |
| rlanghbv | 0:bd78e433db61 | 26 | IN4=0; |
| mjhaugsdal | 1:a3287196a9b3 | 27 | wait_us(fart); |
| rlanghbv | 0:bd78e433db61 | 28 | IN1=1; |
| rlanghbv | 0:bd78e433db61 | 29 | IN2=0; |
| rlanghbv | 0:bd78e433db61 | 30 | IN3=1; |
| rlanghbv | 0:bd78e433db61 | 31 | IN4=0; |
| mjhaugsdal | 1:a3287196a9b3 | 32 | wait_us(fart); |
| rlanghbv | 0:bd78e433db61 | 33 | IN1=1; |
| rlanghbv | 0:bd78e433db61 | 34 | IN2=0; |
| rlanghbv | 0:bd78e433db61 | 35 | IN3=0; |
| rlanghbv | 0:bd78e433db61 | 36 | IN4=1; |
| mjhaugsdal | 1:a3287196a9b3 | 37 | wait_us(fart); |
| rlanghbv | 0:bd78e433db61 | 38 | } |
| rlanghbv | 0:bd78e433db61 | 39 | void step4Left() |
| rlanghbv | 0:bd78e433db61 | 40 | { |
| rlanghbv | 0:bd78e433db61 | 41 | IN1=1; |
| rlanghbv | 0:bd78e433db61 | 42 | IN2=0; |
| rlanghbv | 0:bd78e433db61 | 43 | IN3=0; |
| rlanghbv | 0:bd78e433db61 | 44 | IN4=1; |
| mjhaugsdal | 1:a3287196a9b3 | 45 | wait_us(fart); |
| rlanghbv | 0:bd78e433db61 | 46 | |
| rlanghbv | 0:bd78e433db61 | 47 | IN1=1; |
| rlanghbv | 0:bd78e433db61 | 48 | IN2=0; |
| rlanghbv | 0:bd78e433db61 | 49 | IN3=1; |
| rlanghbv | 0:bd78e433db61 | 50 | IN4=0; |
| mjhaugsdal | 1:a3287196a9b3 | 51 | wait_us(fart); |
| rlanghbv | 0:bd78e433db61 | 52 | |
| rlanghbv | 0:bd78e433db61 | 53 | IN1=0; |
| rlanghbv | 0:bd78e433db61 | 54 | IN2=1; |
| rlanghbv | 0:bd78e433db61 | 55 | IN3=1; |
| rlanghbv | 0:bd78e433db61 | 56 | IN4=0; |
| mjhaugsdal | 1:a3287196a9b3 | 57 | wait_us(fart); |
| rlanghbv | 0:bd78e433db61 | 58 | |
| rlanghbv | 0:bd78e433db61 | 59 | IN1=0; |
| rlanghbv | 0:bd78e433db61 | 60 | IN2=1; |
| rlanghbv | 0:bd78e433db61 | 61 | IN3=0; |
| rlanghbv | 0:bd78e433db61 | 62 | IN4=1; |
| mjhaugsdal | 1:a3287196a9b3 | 63 | wait_us(fart); |
| rlanghbv | 0:bd78e433db61 | 64 | } |
| rlanghbv | 0:bd78e433db61 | 65 | |
| mjhaugsdal | 1:a3287196a9b3 | 66 | |
| mjhaugsdal | 1:a3287196a9b3 | 67 | void input(void const *args) |
| mjhaugsdal | 1:a3287196a9b3 | 68 | { |
| mjhaugsdal | 1:a3287196a9b3 | 69 | while(true) |
| mjhaugsdal | 1:a3287196a9b3 | 70 | { |
| mjhaugsdal | 3:15be78948724 | 71 | |
| rlanghbv | 2:25bcc26f7a5b | 72 | if(pc.readable()) |
| mjhaugsdal | 3:15be78948724 | 73 | { m_cmd=pc.getc(); |
| mjhaugsdal | 3:15be78948724 | 74 | |
| mjhaugsdal | 3:15be78948724 | 75 | } |
| rlanghbv | 2:25bcc26f7a5b | 76 | |
| rlanghbv | 2:25bcc26f7a5b | 77 | Thread::wait(10); |
| mjhaugsdal | 1:a3287196a9b3 | 78 | } |
| mjhaugsdal | 1:a3287196a9b3 | 79 | } |
| rlanghbv | 0:bd78e433db61 | 80 | |
| rlanghbv | 0:bd78e433db61 | 81 | int main() |
| rlanghbv | 0:bd78e433db61 | 82 | { |
| mjhaugsdal | 1:a3287196a9b3 | 83 | //Thread 1 has constant feed from usb |
| rlanghbv | 2:25bcc26f7a5b | 84 | Thread t1(input); |
| mjhaugsdal | 3:15be78948724 | 85 | static char global_direction; |
| mjhaugsdal | 3:15be78948724 | 86 | printf("Started"); |
| mjhaugsdal | 3:15be78948724 | 87 | |
| mjhaugsdal | 1:a3287196a9b3 | 88 | while (true) |
| mjhaugsdal | 1:a3287196a9b3 | 89 | { |
| mjhaugsdal | 4:4d655fdae399 | 90 | //Thread::wait(5); |
| mjhaugsdal | 3:15be78948724 | 91 | |
| mjhaugsdal | 4:4d655fdae399 | 92 | //0 STEPS LEFT AT MAX SPEED |
| mjhaugsdal | 3:15be78948724 | 93 | if (m_cmd == '0') |
| mjhaugsdal | 3:15be78948724 | 94 | { |
| mjhaugsdal | 4:4d655fdae399 | 95 | fart = 1000; |
| mjhaugsdal | 3:15be78948724 | 96 | global_direction = '0'; |
| mjhaugsdal | 3:15be78948724 | 97 | step4Left(); |
| mjhaugsdal | 4:4d655fdae399 | 98 | //printf("LEFT \n"); |
| mjhaugsdal | 3:15be78948724 | 99 | //printf("%c \n" + global_direction); |
| mjhaugsdal | 3:15be78948724 | 100 | } |
| mjhaugsdal | 4:4d655fdae399 | 101 | //1 STEPS RIGHT AT MAX SPEED |
| mjhaugsdal | 3:15be78948724 | 102 | else if (m_cmd == '1') |
| mjhaugsdal | 3:15be78948724 | 103 | { |
| mjhaugsdal | 4:4d655fdae399 | 104 | fart = 1000; |
| mjhaugsdal | 3:15be78948724 | 105 | global_direction = '1'; |
| mjhaugsdal | 3:15be78948724 | 106 | step4Right(); |
| mjhaugsdal | 3:15be78948724 | 107 | //printf("RIGHT \n"); |
| mjhaugsdal | 4:4d655fdae399 | 108 | |
| mjhaugsdal | 3:15be78948724 | 109 | } |
| mjhaugsdal | 4:4d655fdae399 | 110 | else |
| mjhaugsdal | 4:4d655fdae399 | 111 | { |
| mjhaugsdal | 4:4d655fdae399 | 112 | global_direction = 'x'; |
| mjhaugsdal | 4:4d655fdae399 | 113 | } |
| mjhaugsdal | 3:15be78948724 | 114 | if (m_cmd == 'a') |
| mjhaugsdal | 3:15be78948724 | 115 | { |
| mjhaugsdal | 4:4d655fdae399 | 116 | fart = 2000; |
| mjhaugsdal | 4:4d655fdae399 | 117 | global_direction = '1'; |
| mjhaugsdal | 4:4d655fdae399 | 118 | step4Right(); |
| mjhaugsdal | 3:15be78948724 | 119 | |
| mjhaugsdal | 3:15be78948724 | 120 | } |
| mjhaugsdal | 4:4d655fdae399 | 121 | |
| mjhaugsdal | 4:4d655fdae399 | 122 | else if (m_cmd == 'c') |
| mjhaugsdal | 3:15be78948724 | 123 | { |
| mjhaugsdal | 4:4d655fdae399 | 124 | fart = 2000; |
| mjhaugsdal | 4:4d655fdae399 | 125 | global_direction = '0'; |
| mjhaugsdal | 4:4d655fdae399 | 126 | step4Left(); |
| mjhaugsdal | 3:15be78948724 | 127 | } |
| mjhaugsdal | 3:15be78948724 | 128 | if (global_direction =='0') |
| mjhaugsdal | 1:a3287196a9b3 | 129 | { |
| mjhaugsdal | 1:a3287196a9b3 | 130 | step4Left(); |
| mjhaugsdal | 3:15be78948724 | 131 | } |
| mjhaugsdal | 3:15be78948724 | 132 | else if (global_direction == '1') |
| mjhaugsdal | 1:a3287196a9b3 | 133 | { |
| mjhaugsdal | 1:a3287196a9b3 | 134 | step4Right(); |
| mjhaugsdal | 3:15be78948724 | 135 | } |
| mjhaugsdal | 4:4d655fdae399 | 136 | |
| mjhaugsdal | 1:a3287196a9b3 | 137 | } |
| mjhaugsdal | 1:a3287196a9b3 | 138 | |
| mjhaugsdal | 3:15be78948724 | 139 | } //END Main |
