test

Dependencies:   SDFileSystem mbed-dev

Fork of Nucleo_Ex06_EMU by woodstock .

Committer:
charliex
Date:
Sat May 27 02:17:37 2017 +0000
Revision:
4:53ef91c87d74
test

Who changed what in which revision?

UserRevisionLine numberNew 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