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:
- 18:299810a6dcb4
- Parent:
- 17:ae30e74e9eba
--- a/User.cpp Thu Mar 10 03:23:21 2016 +0000 +++ b/User.cpp Thu Mar 10 04:51:16 2016 +0000 @@ -18,21 +18,22 @@ int RSX,RSY,LSX,LSY,BSU,BSL; //これより下に関数外に書く要素を記入する DigitalOut LA(p18); -DigitalOut RA(p19); -DigitalOut LH(p20); -DigitalOut RH(p21); -DigitalOut CH(p22); +DigitalOut RA(p21); +DigitalOut LH(p19); +DigitalOut RH(p20); +DigitalOut CH(p23); PwmOut motor[2] = {p25,p26}; SPI m(p5, p6, p7); DigitalOut cs(p8); //Serial pc(USBTX,USBRX); DigitalOut leds[4] = {LED1,LED2,LED3,LED4}; - +int countA=0,countB=0,countC=0,countD=0; // -void UserLoopSetting(){ +void UserLoopSetting() +{ //一度だけ行いたい初期設定をここに書く LA=0; RA=0; @@ -42,9 +43,10 @@ initSerialServo(); } -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; @@ -53,7 +55,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; @@ -65,110 +67,127 @@ } //ここより下にプログラムを書く //データ取得例 - + int M=0; m.format(16,3); m.frequency(1000000); cs=0; -/* if((ButtonState >> BUTTONCIRCLE)&1) { - //○が押されたとき - } - */ - if((ButtonState >> BUTTONUP)&1){ + /* if((ButtonState >> BUTTONCIRCLE)&1) { + //○が押されたとき + } + */ + if((ButtonState >> BUTTONUP)&1) { motor[0]=0; motor[1]=0.1; - } - else if((ButtonState >> BUTTONDOWN)&1){ + } else if((ButtonState >> BUTTONDOWN)&1) { motor[1]=0; motor[0]=0.1; - } - else{ + } else { motor[0]=0; motor[1]=0; - } -/* if((ButtonState >> BUTTONRIGHT)&1){ - set_degree(ID,50); - }else if((ButtonState >> BUTTONLEFT)&1){ - set_degree(ID,200); - }else{*/ - if(servoflag == 0){ + } + /* if((ButtonState >> BUTTONRIGHT)&1){ + set_degree(ID,50); + }else if((ButtonState >> BUTTONLEFT)&1){ + set_degree(ID,200); + }else{*/ + if(servoflag == 0) { set_degree(ID,135); servoflag= 1; - } + } // } - if((ButtonState >> BUTTONL2)&1){ - LA=!LA; + if((ButtonState >> BUTTONL2)&1) { + countA++; + if(countA>50) { + LA=!LA; + RA=!RA; + countA=0; } - else if((ButtonState >> BUTTONR2)&1){ - RA=!RA; + } else if((ButtonState >> BUTTONR2)&1) { + countA++; + if(countA>50) { + RA=!RA; + LA=!LA; + countA=0; } - else if((ButtonState >> BUTTONCROSS)&1){ - RA=!RA; - LA=!LA; - } - else if((ButtonState >> BUTTONCIRCLE)&1){ - RH=!RH; + } else if((ButtonState >> BUTTONCROSS)&1) { + countA++; + if(countA>50) { + RA=!RA; + LA=!LA; + countA=0; } - else if((ButtonState >> BUTTONTRIANGEL)&1){ - CH=!CH; + } else if((ButtonState >> BUTTONCIRCLE)&1) { + countB++; + if(countB>50) { + RH=!RH; + countB=0; } - else if((ButtonState >> BUTTONSQUARE)&1){ - LH=!LH; - } - if((ButtonState >> BUTTONR1)&1){ - M+=1 << 15; + } else if((ButtonState >> BUTTONTRIANGEL)&1) { + countC++; + if(countC>50) { + CH=!CH; + LH=!LH; + countC=0; } - else if((ButtonState >> BUTTONL1)&1){ - M+=1 << 14; + } else if((ButtonState >> BUTTONSQUARE)&1) { + countD++; + if(countD>50) { + LH=!LH; + CH=!CH; + countD=0; } - if(LSX-128>=0){ - M+=1 << 13; + } + if((ButtonState >> BUTTONR1)&1) { + M+=1 << 15; + } else if((ButtonState >> BUTTONL1)&1) { + M+=1 << 14; + } + if(LSX-128>=0) { M+=((LSX-128)/2) << 7; - } - else if(LSX-128<0){ + } else if(LSX-128<0) { + M+=1 << 13; if(128-LSX==128)M+=63 << 7; else M+=((128-LSX)/2) << 7; - } - if(LSY-127<=0){ + } + if(LSY-127<=0) { + M+=((127-LSY)/2); + } else if(LSY-127>0) { M+=1 << 6; - M+=((127-LSY)/2); - } - else if(LSY-127>0){ if(LSY-127==128)M+=63; else M+=(LSY-127)/2; - } - #ifdef DEBUG_MODE + } +#ifdef DEBUG_MODE int MM,i,MA[16]; MM=M; - for(i=0;MM>0;i++){ + for(i=0; MM>0; i++) { MA[i]=MM % 2; MM=MM/2; } - for(i=i+1;i<16;i++){ + for(i=i+1; i<16; i++) { MA[i]=0; } - for(i=15;i>=0;i--){printf("%d",MA[i]);} + for(i=15; i>=0; i--) { + printf("%d",MA[i]); + } printf("\r\n"); - #endif +#endif //printf("LSX=%d,LSY=%d\r\n",LSX,LSY); printf("M=%d \r\n",M); - - m.write(M); - -/* - led1=LSX/256.0f; - led2=LSY/256.0f; - led3=ButtonState & 0x0400; //L1の状態 - led4=ButtonState & 0x0800; //R1の状態 - */ - for(int i = 0;i<4;i++){ - leds[i] = !leds[i]; - wait_ms(50); - } + + m.write(M); + + /* + led1=LSX/256.0f; + led2=LSY/256.0f; + led3=ButtonState & 0x0400; //L1の状態 + led4=ButtonState & 0x0800; //R1の状態 + */ + //値の取得はps3.hを参照 cs=1; // setID(ID); // readID(); // readID(); - + } \ No newline at end of file