test
Dependencies: mbed KondoServoLibrary Encoder
Diff: User.cpp
- Revision:
- 17:348c660ea6f6
- Parent:
- 16:6837647755fe
- Child:
- 18:f7c587f0f8b8
diff -r 6837647755fe -r 348c660ea6f6 User.cpp --- a/User.cpp Mon Sep 03 09:12:33 2018 +0000 +++ b/User.cpp Wed Sep 11 07:33:59 2019 +0000 @@ -8,19 +8,24 @@ int RSX,RSY,LSX,LSY,BSU,BSL; //これより下に関数外に書く要素を記入する -PwmOut led1(LED1); -PwmOut led2(LED2); -DigitalOut led3(LED3); -DigitalOut led4(LED4); +PwmOut servo(p21); //check survo pin +SPI spi(p5,p6,p7); +DigitalOut cs(p8); +int Speed_Mode = 2 ; +int send; + -void UserLoopSetting(){ - //一度だけ行いたい初期設定をここに書く - led1.period_ms(20); +void UserLoopSetting() +{ + spi.format(8,3); + spi.frequency(1000000); + servo.pulsewidth_us(1450); } - -void UserLoop(char n,const u8* data){ +void UserLoop(char n,const u8* data) +{ + printf("start"); u16 ButtonState; - if(n==0){//有線Ps3USB.cpp + if(n==0) { //有線Ps3USB.cpp RSX = ((ps3report*)data)->RightStickX; RSY = ((ps3report*)data)->RightStickY; LSX = ((ps3report*)data)->LeftStickX; @@ -29,7 +34,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; @@ -40,24 +45,50 @@ ButtonState = ((ps3report*)(data + 1))->ButtonState; } //ここより下にプログラムを書く - - - //データ取得例 - if(((ButtonState >> BUTTONCIRCLE)&1) == 1) { - led1 = 1; - //○が押されたとき + //spi通信用プログラム + send = 0; + if((ButtonState >> BUTTONUP)&1 == 1&&(ButtonState >> BUTTONL1)&1 == 1)//UPL1 + { + send = 84; + }else if ((ButtonState >> BUTTONDOWN)&1 == 1&&(ButtonState >> BUTTONR1)&1 == 1)//DownR1 + { + send = 168; + }else if ((ButtonState >> BUTTONUP)&1 == 1&&(ButtonState >> BUTTONR1)&1 == 1)//UPR1 + { + send = 148; + }else if ((ButtonState >> BUTTONDOWN)&1 == 1&&(ButtonState >> BUTTONL1)&1 == 1)//DownL1 + { + send = 104; + }else if((ButtonState >> BUTTONUP)&1 == 1) + {//対応するボタンを書く(今回上ボタン + send = 20; + }else if((ButtonState >> BUTTONDOWN)&1 == 1) + {//対応するボタンを書く(今回下ボタン + send = 40; + }else if((ButtonState >> BUTTONL1)&1 == 1) + {//対応するボタンを書く(今回L1ボタン + send = 100; + }else if((ButtonState >> BUTTONR1)&1 == 1) + {//対応するボタンを書く(今回R1ボタン + send = 152; }else{ - led1 = 0; - //○を押してないとき - } - - led1=LSX/256.0f; - led2=LSY/256.0f; - led3=ButtonState & 0x0400; //L1の状態 - led4=ButtonState & 0x0800; //R1の状態 - //値の取得はps3.hを参照 - //ここまでプログラム例 実機に乗せるときは消して大丈夫です - - - + send = 0; + } + if((ButtonState >> BUTTONL2)&1 == 1&&Speed_Mode>1) {//対応するボタンを書く(今回L2ボタン + Speed_Mode-=1; + wait(0.1); + }else if((ButtonState >> BUTTONR2)&1 == 1&&Speed_Mode<3) {//対応するボタンを書く(今回R2ボタン + Speed_Mode+=1; + wait(0.1); + }else{ + break; + } + if((ButtonState >> BUTTONTRIANGEL)&1 == 1) {//対応するボタンを書く(今回△ボタン + servo.pulsewidth_us(1450); + } else if((ButtonState >> BUTTONCROSS)&1 == 1) {//対応するボタンを書く(今回×ボタン + servo.pulsewidth_us(2400); + } + send += Speed_Mode; + spi. write(send); + printf("%a\r\n",send); } \ No newline at end of file