GamePortAdapter
Dependencies: mbed-rtos mbed USBDevice USBJoystick
main.cpp@1:ec3596dd0670, 2017-12-07 (annotated)
- Committer:
- obsoleet37
- Date:
- Thu Dec 07 21:22:48 2017 +0000
- Revision:
- 1:ec3596dd0670
- Parent:
- 0:8b4f60bf3f80
- Child:
- 2:c7f76dac3723
Added windows serial instructions
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cblackstone7 | 0:8b4f60bf3f80 | 1 | #include "mbed.h" |
cblackstone7 | 0:8b4f60bf3f80 | 2 | #include "rtos.h" |
cblackstone7 | 0:8b4f60bf3f80 | 3 | |
cblackstone7 | 0:8b4f60bf3f80 | 4 | Serial pc(USBTX, USBRX); |
cblackstone7 | 0:8b4f60bf3f80 | 5 | //macOS: screen /dev/tty.usbmodem{num} {baud rate} |
obsoleet37 | 1:ec3596dd0670 | 6 | //Windows:Realterm lol |
cblackstone7 | 0:8b4f60bf3f80 | 7 | |
cblackstone7 | 0:8b4f60bf3f80 | 8 | Thread analogThread; |
cblackstone7 | 0:8b4f60bf3f80 | 9 | |
cblackstone7 | 0:8b4f60bf3f80 | 10 | Timer y1_t; |
cblackstone7 | 0:8b4f60bf3f80 | 11 | Timer x1_t; |
cblackstone7 | 0:8b4f60bf3f80 | 12 | Timer y2_t; |
cblackstone7 | 0:8b4f60bf3f80 | 13 | Timer x2_t; |
cblackstone7 | 0:8b4f60bf3f80 | 14 | |
cblackstone7 | 0:8b4f60bf3f80 | 15 | InterruptIn y1(p16); |
cblackstone7 | 0:8b4f60bf3f80 | 16 | InterruptIn x1(p15); |
cblackstone7 | 0:8b4f60bf3f80 | 17 | InterruptIn y2(p18); |
cblackstone7 | 0:8b4f60bf3f80 | 18 | InterruptIn x2(p17); |
cblackstone7 | 0:8b4f60bf3f80 | 19 | |
cblackstone7 | 0:8b4f60bf3f80 | 20 | volatile int y1_pulse; |
cblackstone7 | 0:8b4f60bf3f80 | 21 | volatile int x1_pulse; |
cblackstone7 | 0:8b4f60bf3f80 | 22 | volatile int y2_pulse; |
cblackstone7 | 0:8b4f60bf3f80 | 23 | volatile int x2_pulse; |
cblackstone7 | 0:8b4f60bf3f80 | 24 | |
cblackstone7 | 0:8b4f60bf3f80 | 25 | DigitalOut trig(p19); |
cblackstone7 | 0:8b4f60bf3f80 | 26 | |
cblackstone7 | 0:8b4f60bf3f80 | 27 | void start_y1() { |
cblackstone7 | 0:8b4f60bf3f80 | 28 | y1_t.reset(); |
cblackstone7 | 0:8b4f60bf3f80 | 29 | y1_t.start(); |
cblackstone7 | 0:8b4f60bf3f80 | 30 | } |
cblackstone7 | 0:8b4f60bf3f80 | 31 | |
cblackstone7 | 0:8b4f60bf3f80 | 32 | void stop_y1() { |
cblackstone7 | 0:8b4f60bf3f80 | 33 | y1_t.stop(); |
cblackstone7 | 0:8b4f60bf3f80 | 34 | y1_pulse = y1_t.read_us(); |
cblackstone7 | 0:8b4f60bf3f80 | 35 | } |
cblackstone7 | 0:8b4f60bf3f80 | 36 | |
cblackstone7 | 0:8b4f60bf3f80 | 37 | void start_x1() { |
cblackstone7 | 0:8b4f60bf3f80 | 38 | x1_t.reset(); |
cblackstone7 | 0:8b4f60bf3f80 | 39 | x1_t.start(); |
cblackstone7 | 0:8b4f60bf3f80 | 40 | } |
cblackstone7 | 0:8b4f60bf3f80 | 41 | |
cblackstone7 | 0:8b4f60bf3f80 | 42 | void stop_x1() { |
cblackstone7 | 0:8b4f60bf3f80 | 43 | x1_t.stop(); |
cblackstone7 | 0:8b4f60bf3f80 | 44 | x1_pulse = x1_t.read_us(); |
cblackstone7 | 0:8b4f60bf3f80 | 45 | } |
cblackstone7 | 0:8b4f60bf3f80 | 46 | void start_y2() { |
cblackstone7 | 0:8b4f60bf3f80 | 47 | y2_t.reset(); |
cblackstone7 | 0:8b4f60bf3f80 | 48 | y2_t.start(); |
cblackstone7 | 0:8b4f60bf3f80 | 49 | } |
cblackstone7 | 0:8b4f60bf3f80 | 50 | |
cblackstone7 | 0:8b4f60bf3f80 | 51 | void stop_y2() { |
cblackstone7 | 0:8b4f60bf3f80 | 52 | y2_t.stop(); |
cblackstone7 | 0:8b4f60bf3f80 | 53 | y2_pulse = y2_t.read_us(); |
cblackstone7 | 0:8b4f60bf3f80 | 54 | } |
cblackstone7 | 0:8b4f60bf3f80 | 55 | |
cblackstone7 | 0:8b4f60bf3f80 | 56 | void start_x2() { |
cblackstone7 | 0:8b4f60bf3f80 | 57 | x2_t.reset(); |
cblackstone7 | 0:8b4f60bf3f80 | 58 | x2_t.start(); |
cblackstone7 | 0:8b4f60bf3f80 | 59 | } |
cblackstone7 | 0:8b4f60bf3f80 | 60 | |
cblackstone7 | 0:8b4f60bf3f80 | 61 | void stop_x2() { |
cblackstone7 | 0:8b4f60bf3f80 | 62 | x2_t.stop(); |
cblackstone7 | 0:8b4f60bf3f80 | 63 | x2_pulse = x2_t.read_us(); |
cblackstone7 | 0:8b4f60bf3f80 | 64 | } |
cblackstone7 | 0:8b4f60bf3f80 | 65 | |
cblackstone7 | 0:8b4f60bf3f80 | 66 | |
cblackstone7 | 0:8b4f60bf3f80 | 67 | void analog_thread() { |
cblackstone7 | 0:8b4f60bf3f80 | 68 | trig = 1; |
cblackstone7 | 0:8b4f60bf3f80 | 69 | y1_pulse = 0; |
cblackstone7 | 0:8b4f60bf3f80 | 70 | x1_pulse = 0; |
cblackstone7 | 0:8b4f60bf3f80 | 71 | y2_pulse = 0; |
cblackstone7 | 0:8b4f60bf3f80 | 72 | x2_pulse = 0; |
cblackstone7 | 0:8b4f60bf3f80 | 73 | |
cblackstone7 | 0:8b4f60bf3f80 | 74 | y1.rise(&start_y1); |
cblackstone7 | 0:8b4f60bf3f80 | 75 | y1.fall(&stop_y1); |
cblackstone7 | 0:8b4f60bf3f80 | 76 | |
cblackstone7 | 0:8b4f60bf3f80 | 77 | x1.rise(&start_x1); |
cblackstone7 | 0:8b4f60bf3f80 | 78 | x1.fall(&stop_x1); |
cblackstone7 | 0:8b4f60bf3f80 | 79 | |
cblackstone7 | 0:8b4f60bf3f80 | 80 | y2.rise(&start_y2); |
cblackstone7 | 0:8b4f60bf3f80 | 81 | y2.fall(&stop_y2); |
cblackstone7 | 0:8b4f60bf3f80 | 82 | |
cblackstone7 | 0:8b4f60bf3f80 | 83 | x2.rise(&start_x2); |
cblackstone7 | 0:8b4f60bf3f80 | 84 | x2.fall(&stop_x2); |
cblackstone7 | 0:8b4f60bf3f80 | 85 | |
cblackstone7 | 0:8b4f60bf3f80 | 86 | while(1) { |
cblackstone7 | 0:8b4f60bf3f80 | 87 | trig = 0; |
cblackstone7 | 0:8b4f60bf3f80 | 88 | trig = 1; |
cblackstone7 | 0:8b4f60bf3f80 | 89 | wait(.1); |
cblackstone7 | 0:8b4f60bf3f80 | 90 | } |
cblackstone7 | 0:8b4f60bf3f80 | 91 | } |
cblackstone7 | 0:8b4f60bf3f80 | 92 | |
cblackstone7 | 0:8b4f60bf3f80 | 93 | int main() { |
cblackstone7 | 0:8b4f60bf3f80 | 94 | pc.printf("Beginning Joystick Test...\r\n"); |
cblackstone7 | 0:8b4f60bf3f80 | 95 | pc.printf("---------------------------------\r\n"); |
cblackstone7 | 0:8b4f60bf3f80 | 96 | |
cblackstone7 | 0:8b4f60bf3f80 | 97 | analogThread.start(analog_thread); |
cblackstone7 | 0:8b4f60bf3f80 | 98 | |
cblackstone7 | 0:8b4f60bf3f80 | 99 | while(1) { |
cblackstone7 | 0:8b4f60bf3f80 | 100 | pc.printf("Joystick 1 - %d, %d \r\n", x1_pulse, y1_pulse); |
cblackstone7 | 0:8b4f60bf3f80 | 101 | pc.printf("Joystick 2 - %d, %d \r\n", x2_pulse, y2_pulse); |
cblackstone7 | 0:8b4f60bf3f80 | 102 | pc.printf("\r\n"); |
cblackstone7 | 0:8b4f60bf3f80 | 103 | wait(.5); |
cblackstone7 | 0:8b4f60bf3f80 | 104 | } |
cblackstone7 | 0:8b4f60bf3f80 | 105 | } |