test
Dependencies: SDFileSystem mbed-dev
Fork of Nucleo_Ex06_EMU by
pspad.cpp@4:53ef91c87d74, 2017-05-27 (annotated)
- Committer:
- charliex
- Date:
- Sat May 27 02:17:37 2017 +0000
- Revision:
- 4:53ef91c87d74
test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
charliex | 4:53ef91c87d74 | 1 | /*===================================================================*/ |
charliex | 4:53ef91c87d74 | 2 | /* */ |
charliex | 4:53ef91c87d74 | 3 | /* pspad.cpp : PS Pad function */ |
charliex | 4:53ef91c87d74 | 4 | /* */ |
charliex | 4:53ef91c87d74 | 5 | /* 2016/1/20 Racoon */ |
charliex | 4:53ef91c87d74 | 6 | /* */ |
charliex | 4:53ef91c87d74 | 7 | /*===================================================================*/ |
charliex | 4:53ef91c87d74 | 8 | |
charliex | 4:53ef91c87d74 | 9 | #include "mbed.h" |
charliex | 4:53ef91c87d74 | 10 | #include "pspad.h" |
charliex | 4:53ef91c87d74 | 11 | |
charliex | 4:53ef91c87d74 | 12 | #ifndef PS_GAMEPAD |
charliex | 4:53ef91c87d74 | 13 | |
charliex | 4:53ef91c87d74 | 14 | // SPI interface |
charliex | 4:53ef91c87d74 | 15 | SPI pad_spi(PC_12, PC_11, PC_10); // MOSI(should pullup), MISO, SCK |
charliex | 4:53ef91c87d74 | 16 | |
charliex | 4:53ef91c87d74 | 17 | DigitalOut pad1_cs(PD_2); |
charliex | 4:53ef91c87d74 | 18 | |
charliex | 4:53ef91c87d74 | 19 | // PS pad initialize |
charliex | 4:53ef91c87d74 | 20 | void pspad_init() |
charliex | 4:53ef91c87d74 | 21 | { |
charliex | 4:53ef91c87d74 | 22 | pad_spi.format(8, 3); |
charliex | 4:53ef91c87d74 | 23 | pad_spi.frequency(250000); |
charliex | 4:53ef91c87d74 | 24 | } |
charliex | 4:53ef91c87d74 | 25 | |
charliex | 4:53ef91c87d74 | 26 | // Read PS Pad state |
charliex | 4:53ef91c87d74 | 27 | // data1 SE -- -- ST U R D L |
charliex | 4:53ef91c87d74 | 28 | // data2 L2 R2 L1 R1 TR O X SQ |
charliex | 4:53ef91c87d74 | 29 | void pspad_read(unsigned short *pad1, unsigned short *pad2) |
charliex | 4:53ef91c87d74 | 30 | { |
charliex | 4:53ef91c87d74 | 31 | pad1_cs = 0; |
charliex | 4:53ef91c87d74 | 32 | wait_us(500); |
charliex | 4:53ef91c87d74 | 33 | |
charliex | 4:53ef91c87d74 | 34 | pad_spi.write(0x80); |
charliex | 4:53ef91c87d74 | 35 | pad_spi.write(0x42); |
charliex | 4:53ef91c87d74 | 36 | pad_spi.write(0); |
charliex | 4:53ef91c87d74 | 37 | pad_spi.write(0); |
charliex | 4:53ef91c87d74 | 38 | int d1 = pad_spi.write(0); |
charliex | 4:53ef91c87d74 | 39 | int d2 = pad_spi.write(0); |
charliex | 4:53ef91c87d74 | 40 | |
charliex | 4:53ef91c87d74 | 41 | pad1_cs = 1; |
charliex | 4:53ef91c87d74 | 42 | |
charliex | 4:53ef91c87d74 | 43 | *pad1 = (char)~d1 << 8 | (char)~d2; |
charliex | 4:53ef91c87d74 | 44 | |
charliex | 4:53ef91c87d74 | 45 | *pad2 = 0; |
charliex | 4:53ef91c87d74 | 46 | } |
charliex | 4:53ef91c87d74 | 47 | |
charliex | 4:53ef91c87d74 | 48 | |
charliex | 4:53ef91c87d74 | 49 | #endif |