GamePortAdapter
Dependencies: mbed-rtos mbed USBDevice USBJoystick
main.cpp@0:8b4f60bf3f80, 2017-12-07 (annotated)
- Committer:
- cblackstone7
- Date:
- Thu Dec 07 21:15:37 2017 +0000
- Revision:
- 0:8b4f60bf3f80
- Child:
- 1:ec3596dd0670
Initial Commit;
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} |
cblackstone7 | 0:8b4f60bf3f80 | 6 | |
cblackstone7 | 0:8b4f60bf3f80 | 7 | Thread analogThread; |
cblackstone7 | 0:8b4f60bf3f80 | 8 | |
cblackstone7 | 0:8b4f60bf3f80 | 9 | Timer y1_t; |
cblackstone7 | 0:8b4f60bf3f80 | 10 | Timer x1_t; |
cblackstone7 | 0:8b4f60bf3f80 | 11 | Timer y2_t; |
cblackstone7 | 0:8b4f60bf3f80 | 12 | Timer x2_t; |
cblackstone7 | 0:8b4f60bf3f80 | 13 | |
cblackstone7 | 0:8b4f60bf3f80 | 14 | InterruptIn y1(p16); |
cblackstone7 | 0:8b4f60bf3f80 | 15 | InterruptIn x1(p15); |
cblackstone7 | 0:8b4f60bf3f80 | 16 | InterruptIn y2(p18); |
cblackstone7 | 0:8b4f60bf3f80 | 17 | InterruptIn x2(p17); |
cblackstone7 | 0:8b4f60bf3f80 | 18 | |
cblackstone7 | 0:8b4f60bf3f80 | 19 | volatile int y1_pulse; |
cblackstone7 | 0:8b4f60bf3f80 | 20 | volatile int x1_pulse; |
cblackstone7 | 0:8b4f60bf3f80 | 21 | volatile int y2_pulse; |
cblackstone7 | 0:8b4f60bf3f80 | 22 | volatile int x2_pulse; |
cblackstone7 | 0:8b4f60bf3f80 | 23 | |
cblackstone7 | 0:8b4f60bf3f80 | 24 | DigitalOut trig(p19); |
cblackstone7 | 0:8b4f60bf3f80 | 25 | |
cblackstone7 | 0:8b4f60bf3f80 | 26 | void start_y1() { |
cblackstone7 | 0:8b4f60bf3f80 | 27 | y1_t.reset(); |
cblackstone7 | 0:8b4f60bf3f80 | 28 | y1_t.start(); |
cblackstone7 | 0:8b4f60bf3f80 | 29 | } |
cblackstone7 | 0:8b4f60bf3f80 | 30 | |
cblackstone7 | 0:8b4f60bf3f80 | 31 | void stop_y1() { |
cblackstone7 | 0:8b4f60bf3f80 | 32 | y1_t.stop(); |
cblackstone7 | 0:8b4f60bf3f80 | 33 | y1_pulse = y1_t.read_us(); |
cblackstone7 | 0:8b4f60bf3f80 | 34 | } |
cblackstone7 | 0:8b4f60bf3f80 | 35 | |
cblackstone7 | 0:8b4f60bf3f80 | 36 | void start_x1() { |
cblackstone7 | 0:8b4f60bf3f80 | 37 | x1_t.reset(); |
cblackstone7 | 0:8b4f60bf3f80 | 38 | x1_t.start(); |
cblackstone7 | 0:8b4f60bf3f80 | 39 | } |
cblackstone7 | 0:8b4f60bf3f80 | 40 | |
cblackstone7 | 0:8b4f60bf3f80 | 41 | void stop_x1() { |
cblackstone7 | 0:8b4f60bf3f80 | 42 | x1_t.stop(); |
cblackstone7 | 0:8b4f60bf3f80 | 43 | x1_pulse = x1_t.read_us(); |
cblackstone7 | 0:8b4f60bf3f80 | 44 | } |
cblackstone7 | 0:8b4f60bf3f80 | 45 | void start_y2() { |
cblackstone7 | 0:8b4f60bf3f80 | 46 | y2_t.reset(); |
cblackstone7 | 0:8b4f60bf3f80 | 47 | y2_t.start(); |
cblackstone7 | 0:8b4f60bf3f80 | 48 | } |
cblackstone7 | 0:8b4f60bf3f80 | 49 | |
cblackstone7 | 0:8b4f60bf3f80 | 50 | void stop_y2() { |
cblackstone7 | 0:8b4f60bf3f80 | 51 | y2_t.stop(); |
cblackstone7 | 0:8b4f60bf3f80 | 52 | y2_pulse = y2_t.read_us(); |
cblackstone7 | 0:8b4f60bf3f80 | 53 | } |
cblackstone7 | 0:8b4f60bf3f80 | 54 | |
cblackstone7 | 0:8b4f60bf3f80 | 55 | void start_x2() { |
cblackstone7 | 0:8b4f60bf3f80 | 56 | x2_t.reset(); |
cblackstone7 | 0:8b4f60bf3f80 | 57 | x2_t.start(); |
cblackstone7 | 0:8b4f60bf3f80 | 58 | } |
cblackstone7 | 0:8b4f60bf3f80 | 59 | |
cblackstone7 | 0:8b4f60bf3f80 | 60 | void stop_x2() { |
cblackstone7 | 0:8b4f60bf3f80 | 61 | x2_t.stop(); |
cblackstone7 | 0:8b4f60bf3f80 | 62 | x2_pulse = x2_t.read_us(); |
cblackstone7 | 0:8b4f60bf3f80 | 63 | } |
cblackstone7 | 0:8b4f60bf3f80 | 64 | |
cblackstone7 | 0:8b4f60bf3f80 | 65 | |
cblackstone7 | 0:8b4f60bf3f80 | 66 | void analog_thread() { |
cblackstone7 | 0:8b4f60bf3f80 | 67 | trig = 1; |
cblackstone7 | 0:8b4f60bf3f80 | 68 | y1_pulse = 0; |
cblackstone7 | 0:8b4f60bf3f80 | 69 | x1_pulse = 0; |
cblackstone7 | 0:8b4f60bf3f80 | 70 | y2_pulse = 0; |
cblackstone7 | 0:8b4f60bf3f80 | 71 | x2_pulse = 0; |
cblackstone7 | 0:8b4f60bf3f80 | 72 | |
cblackstone7 | 0:8b4f60bf3f80 | 73 | y1.rise(&start_y1); |
cblackstone7 | 0:8b4f60bf3f80 | 74 | y1.fall(&stop_y1); |
cblackstone7 | 0:8b4f60bf3f80 | 75 | |
cblackstone7 | 0:8b4f60bf3f80 | 76 | x1.rise(&start_x1); |
cblackstone7 | 0:8b4f60bf3f80 | 77 | x1.fall(&stop_x1); |
cblackstone7 | 0:8b4f60bf3f80 | 78 | |
cblackstone7 | 0:8b4f60bf3f80 | 79 | y2.rise(&start_y2); |
cblackstone7 | 0:8b4f60bf3f80 | 80 | y2.fall(&stop_y2); |
cblackstone7 | 0:8b4f60bf3f80 | 81 | |
cblackstone7 | 0:8b4f60bf3f80 | 82 | x2.rise(&start_x2); |
cblackstone7 | 0:8b4f60bf3f80 | 83 | x2.fall(&stop_x2); |
cblackstone7 | 0:8b4f60bf3f80 | 84 | |
cblackstone7 | 0:8b4f60bf3f80 | 85 | while(1) { |
cblackstone7 | 0:8b4f60bf3f80 | 86 | trig = 0; |
cblackstone7 | 0:8b4f60bf3f80 | 87 | trig = 1; |
cblackstone7 | 0:8b4f60bf3f80 | 88 | wait(.1); |
cblackstone7 | 0:8b4f60bf3f80 | 89 | } |
cblackstone7 | 0:8b4f60bf3f80 | 90 | } |
cblackstone7 | 0:8b4f60bf3f80 | 91 | |
cblackstone7 | 0:8b4f60bf3f80 | 92 | int main() { |
cblackstone7 | 0:8b4f60bf3f80 | 93 | pc.printf("Beginning Joystick Test...\r\n"); |
cblackstone7 | 0:8b4f60bf3f80 | 94 | pc.printf("---------------------------------\r\n"); |
cblackstone7 | 0:8b4f60bf3f80 | 95 | |
cblackstone7 | 0:8b4f60bf3f80 | 96 | analogThread.start(analog_thread); |
cblackstone7 | 0:8b4f60bf3f80 | 97 | |
cblackstone7 | 0:8b4f60bf3f80 | 98 | while(1) { |
cblackstone7 | 0:8b4f60bf3f80 | 99 | pc.printf("Joystick 1 - %d, %d \r\n", x1_pulse, y1_pulse); |
cblackstone7 | 0:8b4f60bf3f80 | 100 | pc.printf("Joystick 2 - %d, %d \r\n", x2_pulse, y2_pulse); |
cblackstone7 | 0:8b4f60bf3f80 | 101 | pc.printf("\r\n"); |
cblackstone7 | 0:8b4f60bf3f80 | 102 | wait(.5); |
cblackstone7 | 0:8b4f60bf3f80 | 103 | } |
cblackstone7 | 0:8b4f60bf3f80 | 104 | } |