GamePortAdapter
Dependencies: mbed-rtos mbed USBDevice USBJoystick
main.cpp
- Committer:
- obsoleet37
- Date:
- 2017-12-11
- Revision:
- 2:c7f76dac3723
- Parent:
- 1:ec3596dd0670
- Child:
- 3:20f3136e49fa
File content as of revision 2:c7f76dac3723:
#include "mbed.h" #include "rtos.h" Serial pc(USBTX, USBRX); //macOS: screen /dev/tty.usbmodem{num} {baud rate} //Windows: Realterm lol Thread analogThread; Timer y1_t; Timer x1_t; Timer y2_t; Timer x2_t; InterruptIn y1(p16); InterruptIn x1(p15); InterruptIn y2(p18); InterruptIn x2(p17); volatile int y1_pulse; volatile int x1_pulse; volatile int y2_pulse; volatile int x2_pulse; volatile int buts; DigitalOut trig(p19); BusIn buttons(p21, p22, p23, p24); void start_y1() { y1_t.reset(); y1_t.start(); } void stop_y1() { y1_t.stop(); y1_pulse = y1_t.read_us(); } void start_x1() { x1_t.reset(); x1_t.start(); } void stop_x1() { x1_t.stop(); x1_pulse = x1_t.read_us(); } void start_y2() { y2_t.reset(); y2_t.start(); } void stop_y2() { y2_t.stop(); y2_pulse = y2_t.read_us(); } void start_x2() { x2_t.reset(); x2_t.start(); } void stop_x2() { x2_t.stop(); x2_pulse = x2_t.read_us(); } void analog_thread() { trig = 1; y1_pulse = 0; x1_pulse = 0; y2_pulse = 0; x2_pulse = 0; y1.rise(&start_y1); y1.fall(&stop_y1); x1.rise(&start_x1); x1.fall(&stop_x1); y2.rise(&start_y2); y2.fall(&stop_y2); x2.rise(&start_x2); x2.fall(&stop_x2); buttons.mode(PullUp); while(1) { trig = 0; trig = 1; buts = ~buttons&0xF; wait(.1); } } int main() { pc.printf("Beginning Joystick Test...\r\n"); pc.printf("---------------------------------\r\n"); analogThread.start(analog_thread); while(1) { pc.printf("Joystick 1 - %d, %d, %X \r\n", x1_pulse, y1_pulse, buts&0x3); pc.printf("Joystick 2 - %d, %d, %X \r\n", x2_pulse, y2_pulse, (buts>>2)&0x3); pc.printf("\r\n"); wait(.5); } }