春ロボ ロケット団 / Mbed 2 deprecated spring_ps3

Dependencies:   mbed

Committer:
o2132613
Date:
Mon Mar 02 07:39:54 2020 +0000
Revision:
20:3acaf78485fa
Parent:
19:4058485b5bb3
ver.1 for spring; check pin of CAN;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hirokimineshita 0:736c76a75def 1 #include "Utils.h"
hirokimineshita 0:736c76a75def 2 #include "USBHost.h"
hirokimineshita 0:736c76a75def 3 #include "hci.h"
hirokimineshita 0:736c76a75def 4 #include "ps3.h"
hirokimineshita 0:736c76a75def 5 #include "User.h"
hirokimineshita 0:736c76a75def 6 #include "mbed.h"
yuto17320508 18:2579c275ef57 7 #include "math.h"
yuto17320508 18:2579c275ef57 8
hirokimineshita 0:736c76a75def 9 int RSX,RSY,LSX,LSY,BSU,BSL;
yuto17320508 16:b232fd9ee9c2 10 DigitalOut cs(p8);
o2132613 20:3acaf78485fa 11 int move,shoot,speed;
o2132613 20:3acaf78485fa 12 Can controller(,);//CANpin_name
yuto17320508 16:b232fd9ee9c2 13
baba2357 11:86d717718dbf 14
yuto17320508 16:b232fd9ee9c2 15 void UserLoopSetting()
yuto17320508 16:b232fd9ee9c2 16 {
o2132613 20:3acaf78485fa 17
hirokimineshita 0:736c76a75def 18 }
yuto17320508 16:b232fd9ee9c2 19 void UserLoop(char n,const u8* data)
yuto17320508 16:b232fd9ee9c2 20 {
hirokimineshita 0:736c76a75def 21 u16 ButtonState;
yuto17320508 16:b232fd9ee9c2 22 if(n==0) { //有線Ps3USB.cpp
hirokimineshita 0:736c76a75def 23 RSX = ((ps3report*)data)->RightStickX;
hirokimineshita 0:736c76a75def 24 RSY = ((ps3report*)data)->RightStickY;
hirokimineshita 0:736c76a75def 25 LSX = ((ps3report*)data)->LeftStickX;
hirokimineshita 0:736c76a75def 26 LSY = ((ps3report*)data)->LeftStickY;
hirokimineshita 0:736c76a75def 27 BSU = (u8)(((ps3report*)data)->ButtonState & 0x00ff);
hirokimineshita 0:736c76a75def 28 BSL = (u8)(((ps3report*)data)->ButtonState >> 8);
hirokimineshita 0:736c76a75def 29 //ボタンの処理
hirokimineshita 0:736c76a75def 30 ButtonState = ((ps3report*)data)->ButtonState;
yuto17320508 16:b232fd9ee9c2 31 } else {//無線TestShell.cpp
hirokimineshita 0:736c76a75def 32 RSX = ((ps3report*)(data + 1))->RightStickX;
hirokimineshita 0:736c76a75def 33 RSY = ((ps3report*)(data + 1))->RightStickY;
hirokimineshita 0:736c76a75def 34 LSX = ((ps3report*)(data + 1))->LeftStickX;
hirokimineshita 0:736c76a75def 35 LSY = ((ps3report*)(data + 1))->LeftStickY;
hirokimineshita 0:736c76a75def 36 BSU = (u8)(((ps3report*)(data + 1))->ButtonState & 0x00ff);
hirokimineshita 0:736c76a75def 37 BSL = (u8)(((ps3report*)(data + 1))->ButtonState >> 8);
hirokimineshita 0:736c76a75def 38 //ボタンの処理
hirokimineshita 0:736c76a75def 39 ButtonState = ((ps3report*)(data + 1))->ButtonState;
hirokimineshita 0:736c76a75def 40 }
hirokimineshita 0:736c76a75def 41 //ここより下にプログラムを書く
o2132613 20:3acaf78485fa 42 //CAN通信用プログラム
o2132613 20:3acaf78485fa 43 move = controller_move();
o2132613 20:3acaf78485fa 44 shoot = controller_shoot();
o2132613 20:3acaf78485fa 45 speed = controller_speed();
o2132613 20:3acaf78485fa 46 controller.write(CANMessage(1,move,1);
o2132613 20:3acaf78485fa 47 controller.write(CANMessage(2,shoot,1);
o2132613 20:3acaf78485fa 48 controller.write(CANMessgae(3,speed,1);
o2132613 20:3acaf78485fa 49 }
o2132613 20:3acaf78485fa 50
o2132613 20:3acaf78485fa 51 int controller_move(){
o2132613 19:4058485b5bb3 52 if((ButtonState >> BUTTONUP)&1 == 1&&(ButtonState >> BUTTONL1)&1 == 1)//UPL1
o2132613 19:4058485b5bb3 53 {
o2132613 20:3acaf78485fa 54 return 9;
o2132613 19:4058485b5bb3 55 }else if ((ButtonState >> BUTTONDOWN)&1 == 1&&(ButtonState >> BUTTONR1)&1 == 1)//DownR1
o2132613 19:4058485b5bb3 56 {
o2132613 20:3acaf78485fa 57 return 3;
o2132613 19:4058485b5bb3 58 }else if ((ButtonState >> BUTTONUP)&1 == 1&&(ButtonState >> BUTTONR1)&1 == 1)//UPR1
o2132613 19:4058485b5bb3 59 {
o2132613 20:3acaf78485fa 60 return 7;
o2132613 19:4058485b5bb3 61 }else if ((ButtonState >> BUTTONDOWN)&1 == 1&&(ButtonState >> BUTTONL1)&1 == 1)//DownL1
o2132613 19:4058485b5bb3 62 {
o2132613 20:3acaf78485fa 63 return 1;
o2132613 20:3acaf78485fa 64 }else if((ButtonState >> BUTTONUP)&1 == 1) //up
o2132613 20:3acaf78485fa 65 {
o2132613 20:3acaf78485fa 66 return 8;
o2132613 20:3acaf78485fa 67 }else if((ButtonState >> BUTTONDOWN)&1 == 1)//down
o2132613 20:3acaf78485fa 68 {
o2132613 20:3acaf78485fa 69 return 2;
o2132613 20:3acaf78485fa 70 }else if((ButtonState >> BUTTONRIGHT)&1 == 1)//right
o2132613 20:3acaf78485fa 71 {
o2132613 20:3acaf78485fa 72 return 6;
o2132613 20:3acaf78485fa 73 }else if((ButtonState >> BUTTONLEFT)&1 == 1)//left
o2132613 20:3acaf78485fa 74 {
o2132613 20:3acaf78485fa 75 return 4;
o2132613 20:3acaf78485fa 76 }else if((ButtonState >> BUTTONL1)&1 == 1) //L1
o2132613 20:3acaf78485fa 77 {
o2132613 20:3acaf78485fa 78 return 10;
o2132613 20:3acaf78485fa 79 }else if((ButtonState >> BUTTONR1)&1 == 1) //R1
o2132613 20:3acaf78485fa 80 {
o2132613 20:3acaf78485fa 81 return 11;
o2132613 19:4058485b5bb3 82 }else{
o2132613 20:3acaf78485fa 83 return 0;
yuto17320508 18:2579c275ef57 84 }
o2132613 20:3acaf78485fa 85 }
o2132613 20:3acaf78485fa 86 int controller_speed(){
o2132613 19:4058485b5bb3 87 if((ButtonState >> BUTTONL2)&1 == 1&&Speed_Mode>1) {//対応するボタンを書く(今回L2ボタン
o2132613 20:3acaf78485fa 88 return 1;
o2132613 19:4058485b5bb3 89 }else if((ButtonState >> BUTTONR2)&1 == 1&&Speed_Mode<3) {//対応するボタンを書く(今回R2ボタン
o2132613 20:3acaf78485fa 90 return 2;
o2132613 20:3acaf78485fa 91 }else{
o2132613 20:3acaf78485fa 92 return 0;
yuto17320508 18:2579c275ef57 93 }
o2132613 20:3acaf78485fa 94 }
o2132613 20:3acaf78485fa 95 int controller_shoot(){
o2132613 20:3acaf78485fa 96 if((ButtonState >> BUTTONCIRCLE)&1 == 1) {//O
o2132613 20:3acaf78485fa 97 return 1;
o2132613 20:3acaf78485fa 98 } else if((ButtonState >> BUTTONCROSS)&1 == 1) {//X
o2132613 20:3acaf78485fa 99 return 2;
o2132613 20:3acaf78485fa 100 }else if((ButtonState >> BUTTONTRIANGLE)&1 == 1) {//△
o2132613 20:3acaf78485fa 101 return 3;
o2132613 20:3acaf78485fa 102 }else if((ButtonState >> BUTTONSQUARE)&1 == 1) {//□
o2132613 20:3acaf78485fa 103 return 4;
o2132613 20:3acaf78485fa 104 }else{
o2132613 20:3acaf78485fa 105 return 0;
o2132613 20:3acaf78485fa 106 }
hirokimineshita 0:736c76a75def 107 }