Engine control program with 3 engines Needs to make a case for each simultaneous engine setting, because of the WAIT after each number of bits have been sent.
Dependencies: mbed-rtos mbed PinDetect
Fork of FinalMotorControl by
main.cpp@2:25bcc26f7a5b, 2016-04-07 (annotated)
- Committer:
- rlanghbv
- Date:
- Thu Apr 07 11:05:26 2016 +0000
- Revision:
- 2:25bcc26f7a5b
- Parent:
- 1:a3287196a9b3
- Child:
- 3:15be78948724
Using Serial instead of STDIN
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 | Mutex stdio_mutex; |
mjhaugsdal | 1:a3287196a9b3 | 13 | static int fart = 1000; |
mjhaugsdal | 1:a3287196a9b3 | 14 | static char global_direction; |
mjhaugsdal | 1:a3287196a9b3 | 15 | static int global_counter; |
rlanghbv | 0:bd78e433db61 | 16 | |
rlanghbv | 0:bd78e433db61 | 17 | |
rlanghbv | 0:bd78e433db61 | 18 | void step4Right() |
rlanghbv | 0:bd78e433db61 | 19 | { |
rlanghbv | 0:bd78e433db61 | 20 | IN1=0; |
rlanghbv | 0:bd78e433db61 | 21 | IN2=1; |
rlanghbv | 0:bd78e433db61 | 22 | IN3=0; |
rlanghbv | 0:bd78e433db61 | 23 | IN4=1; |
mjhaugsdal | 1:a3287196a9b3 | 24 | wait_us(fart); //legg som global variabel "fart" |
rlanghbv | 0:bd78e433db61 | 25 | IN1=0; |
rlanghbv | 0:bd78e433db61 | 26 | IN2=1; |
rlanghbv | 0:bd78e433db61 | 27 | IN3=1; |
rlanghbv | 0:bd78e433db61 | 28 | IN4=0; |
mjhaugsdal | 1:a3287196a9b3 | 29 | wait_us(fart); |
rlanghbv | 0:bd78e433db61 | 30 | IN1=1; |
rlanghbv | 0:bd78e433db61 | 31 | IN2=0; |
rlanghbv | 0:bd78e433db61 | 32 | IN3=1; |
rlanghbv | 0:bd78e433db61 | 33 | IN4=0; |
mjhaugsdal | 1:a3287196a9b3 | 34 | wait_us(fart); |
rlanghbv | 0:bd78e433db61 | 35 | IN1=1; |
rlanghbv | 0:bd78e433db61 | 36 | IN2=0; |
rlanghbv | 0:bd78e433db61 | 37 | IN3=0; |
rlanghbv | 0:bd78e433db61 | 38 | IN4=1; |
mjhaugsdal | 1:a3287196a9b3 | 39 | wait_us(fart); |
rlanghbv | 0:bd78e433db61 | 40 | } |
rlanghbv | 0:bd78e433db61 | 41 | void step4Left() |
rlanghbv | 0:bd78e433db61 | 42 | { |
rlanghbv | 0:bd78e433db61 | 43 | IN1=1; |
rlanghbv | 0:bd78e433db61 | 44 | IN2=0; |
rlanghbv | 0:bd78e433db61 | 45 | IN3=0; |
rlanghbv | 0:bd78e433db61 | 46 | IN4=1; |
mjhaugsdal | 1:a3287196a9b3 | 47 | wait_us(fart); |
rlanghbv | 0:bd78e433db61 | 48 | |
rlanghbv | 0:bd78e433db61 | 49 | IN1=1; |
rlanghbv | 0:bd78e433db61 | 50 | IN2=0; |
rlanghbv | 0:bd78e433db61 | 51 | IN3=1; |
rlanghbv | 0:bd78e433db61 | 52 | IN4=0; |
mjhaugsdal | 1:a3287196a9b3 | 53 | wait_us(fart); |
rlanghbv | 0:bd78e433db61 | 54 | |
rlanghbv | 0:bd78e433db61 | 55 | IN1=0; |
rlanghbv | 0:bd78e433db61 | 56 | IN2=1; |
rlanghbv | 0:bd78e433db61 | 57 | IN3=1; |
rlanghbv | 0:bd78e433db61 | 58 | IN4=0; |
mjhaugsdal | 1:a3287196a9b3 | 59 | wait_us(fart); |
rlanghbv | 0:bd78e433db61 | 60 | |
rlanghbv | 0:bd78e433db61 | 61 | IN1=0; |
rlanghbv | 0:bd78e433db61 | 62 | IN2=1; |
rlanghbv | 0:bd78e433db61 | 63 | IN3=0; |
rlanghbv | 0:bd78e433db61 | 64 | IN4=1; |
mjhaugsdal | 1:a3287196a9b3 | 65 | wait_us(fart); |
rlanghbv | 0:bd78e433db61 | 66 | } |
rlanghbv | 0:bd78e433db61 | 67 | |
mjhaugsdal | 1:a3287196a9b3 | 68 | |
mjhaugsdal | 1:a3287196a9b3 | 69 | void input(void const *args) |
mjhaugsdal | 1:a3287196a9b3 | 70 | { |
mjhaugsdal | 1:a3287196a9b3 | 71 | while(true) |
mjhaugsdal | 1:a3287196a9b3 | 72 | { |
rlanghbv | 2:25bcc26f7a5b | 73 | //scanf(" %c", &global_direction); |
rlanghbv | 2:25bcc26f7a5b | 74 | //global_direction=getchar(); |
rlanghbv | 2:25bcc26f7a5b | 75 | if(pc.readable()) |
rlanghbv | 2:25bcc26f7a5b | 76 | { global_direction=pc.getc(); } |
rlanghbv | 2:25bcc26f7a5b | 77 | |
rlanghbv | 2:25bcc26f7a5b | 78 | Thread::wait(10); |
mjhaugsdal | 1:a3287196a9b3 | 79 | } |
mjhaugsdal | 1:a3287196a9b3 | 80 | } |
rlanghbv | 0:bd78e433db61 | 81 | |
rlanghbv | 0:bd78e433db61 | 82 | int main() |
rlanghbv | 0:bd78e433db61 | 83 | { |
mjhaugsdal | 1:a3287196a9b3 | 84 | //Thread 1 has constant feed from usb |
rlanghbv | 2:25bcc26f7a5b | 85 | Thread t1(input); |
mjhaugsdal | 1:a3287196a9b3 | 86 | while (true) |
mjhaugsdal | 1:a3287196a9b3 | 87 | { |
rlanghbv | 0:bd78e433db61 | 88 | step4Left(); |
rlanghbv | 0:bd78e433db61 | 89 | |
mjhaugsdal | 1:a3287196a9b3 | 90 | /* |
mjhaugsdal | 1:a3287196a9b3 | 91 | if (global_direction == '0') |
mjhaugsdal | 1:a3287196a9b3 | 92 | { |
mjhaugsdal | 1:a3287196a9b3 | 93 | step4Left(); |
mjhaugsdal | 1:a3287196a9b3 | 94 | printf("%c \n" + global_direction); |
mjhaugsdal | 1:a3287196a9b3 | 95 | } */ |
mjhaugsdal | 1:a3287196a9b3 | 96 | /*else if (global_direction == '1') |
mjhaugsdal | 1:a3287196a9b3 | 97 | { |
mjhaugsdal | 1:a3287196a9b3 | 98 | step4Right(); |
mjhaugsdal | 1:a3287196a9b3 | 99 | //printf("RIGHT \n"); |
mjhaugsdal | 1:a3287196a9b3 | 100 | } */ |
mjhaugsdal | 1:a3287196a9b3 | 101 | /* else |
mjhaugsdal | 1:a3287196a9b3 | 102 | { |
mjhaugsdal | 1:a3287196a9b3 | 103 | //Do nothing |
mjhaugsdal | 1:a3287196a9b3 | 104 | |
mjhaugsdal | 1:a3287196a9b3 | 105 | }*/ |
mjhaugsdal | 1:a3287196a9b3 | 106 | } |
mjhaugsdal | 1:a3287196a9b3 | 107 | |
mjhaugsdal | 1:a3287196a9b3 | 108 | } //END Main |