Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of PS3_BlueUSB_user_ver_circlewar by
Diff: User.cpp
- Revision:
- 13:0d6ad1fb03b5
- Parent:
- 12:d35077f98a08
- Child:
- 19:71f64ff1b86f
--- a/User.cpp Mon Feb 15 08:36:10 2016 +0000 +++ b/User.cpp Tue Mar 29 12:29:58 2016 +0000 @@ -1,7 +1,3 @@ - -/*分かれ!J!*/ - - #include "Utils.h" #include "USBHost.h" @@ -16,21 +12,19 @@ PwmOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); -DigitalOut LA(p21); -DigitalOut RA(p23); -DigitalOut LH(p22); -DigitalOut RH(p24); -DigitalOut CH(p25); +DigitalOut hand(p21); SPI m(p5, p6, p7); DigitalOut cs(p8); -void UserLoopSetting(){ +void UserLoopSetting() +{ //一度だけ行いたい初期設定をここに書く led1.period_ms(20); } -void UserLoop(char n,const u8* data){ +void UserLoop(char n,const u8* data) +{ u16 ButtonState; - if(n==0){//有線Ps3USB.cpp + if(n==0) { //有線Ps3USB.cpp RSX = ((ps3report*)data)->RightStickX; RSY = ((ps3report*)data)->RightStickY; LSX = ((ps3report*)data)->LeftStickX; @@ -39,7 +33,7 @@ BSL = (u8)(((ps3report*)data)->ButtonState >> 8); //ボタンの処理 ButtonState = ((ps3report*)data)->ButtonState; - }else {//無線TestShell.cpp + } else {//無線TestShell.cpp RSX = ((ps3report*)(data + 1))->RightStickX; RSY = ((ps3report*)(data + 1))->RightStickY; LSX = ((ps3report*)(data + 1))->LeftStickX; @@ -52,57 +46,52 @@ //ここより下にプログラムを書く //データ取得例 int M=0; + bool H=0; m.format(16,3); m.frequency(1000000); cs=0; if((ButtonState >> BUTTONCIRCLE)&1) { //○が押されたとき + H=!H; + hand=H; } - if((ButtonState >> BUTTONL2)&1){ - LA=1; - } - else if((ButtonState >> BUTTONR2)&1){ - RA=1; - } - else if((ButtonState >> BUTTONCROSS)&1){ - RA=1; - LA=1; - } - else if((ButtonState >> BUTTONCIRCLE)&1){ - RH=1; - } - else if((ButtonState >> BUTTONTRIANGEL)&1){ - CH=1; - } - else if((ButtonState >> BUTTONSQUARE)&1){ - LH=1; + //以下の整数MをSPIで送る + //整数Mを16桁の二進数とする。 + //桁数| 16 | 15 | 14 |13|12|11|10|9|8| 7 |6|5|4|3|2|1| + //指示|右旋回 |左旋回 |Xの+or-| 出力0~63 |Yの+orー| 出力0~63 | + if((ButtonState >> BUTTONR1)&1) { + M=1; + M=M<<15; + } else if((ButtonState >> BUTTONL2)&1) { + M=1; + M=M<<14; + } else { + if(LSX-128>=0) { + M=1; + M=M<<6; + M+=(LSX-128)/2; + M=M<<7; + } else if(LSX-128<0) { + M+=(-1)*((LSX-128)/2); + if(M==64) M=63; + M=M<<7; } - if((ButtonState >> BUTTONR1)&1){ - M=+32768; - } - else if((ButtonState >> BUTTONL2)&1){ - M=+16384; - } - if(LSX-128>=0){ - M=+8192; - M=+(LSX-128)*64; - } - else if(LSX-128<0){ - M=+(-1)*((LSX-128)*64); - } - if(LSY-128>=0){ - M=+64; - M=+((LSY-128)/2); - } - else if(LSY-128<0){ - M=+((-1)*(LSY-128)); - } - m.write(M); - + if(LSY-128>=0) { + M+=1<<6; + M+=(LSY-128)/2; + } else if(LSY-128<0) { + M+=((-1)*(LSY-128)/2); + if(M==64) M=63; + } else M=0; + } + m.write(0xffff); +// m.write(M); + printf("0x%x\r\n",M); + led1=LSX/256.0f; led2=LSY/256.0f; led3=ButtonState & 0x0400; //L1の状態 led4=ButtonState & 0x0800; //R1の状態 //値の取得はps3.hを参照 - cs=1; + cs=1; } \ No newline at end of file