team3 / Mbed 2 deprecated PS3_BlueUSB_user_old

Dependencies:   mbed

Fork of PS3_BlueUSB_user by ROBOSTEP_SHARE

Committer:
yuji8822
Date:
Wed May 27 10:31:05 2015 +0000
Revision:
8:1d1b8298f0cd
Parent:
7:4bddbd4549a1
Child:
9:0b1bd6a05321
ps3 ????????user.cpp

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
hirokimineshita 0:736c76a75def 7 #include "mbed.h"
hirokimineshita 0:736c76a75def 8
hirokimineshita 0:736c76a75def 9 //ここに関数外に書く要素を記入する
hirokimineshita 0:736c76a75def 10 int RSX,RSY,LSX,LSY,BSU,BSL;
hirokimineshita 0:736c76a75def 11 PwmOut led1(LED1);
hirokimineshita 0:736c76a75def 12 PwmOut led2(LED2);
yuji8822 8:1d1b8298f0cd 13
hirokimineshita 0:736c76a75def 14 DigitalOut led3(LED3);
hirokimineshita 0:736c76a75def 15 DigitalOut led4(LED4);
hirokimineshita 0:736c76a75def 16
yuji8822 8:1d1b8298f0cd 17 PwmOut wheelR1(p21);
yuji8822 8:1d1b8298f0cd 18 PwmOut wheelR2(p22);
yuji8822 8:1d1b8298f0cd 19
yuji8822 8:1d1b8298f0cd 20 PwmOut wheelL2(p23);
yuji8822 8:1d1b8298f0cd 21 PwmOut wheelL1(p24);
yuji8822 8:1d1b8298f0cd 22
yuji8822 8:1d1b8298f0cd 23 DigitalOut launch1(p25);
yuji8822 8:1d1b8298f0cd 24 DigitalOut launch2(p26);
yuji8822 8:1d1b8298f0cd 25
yuji8822 8:1d1b8298f0cd 26 void motorR(int dir,float dutyR)
yuji8822 8:1d1b8298f0cd 27
yuji8822 8:1d1b8298f0cd 28 {
yuji8822 8:1d1b8298f0cd 29 if(dir==1)
yuji8822 8:1d1b8298f0cd 30 {
yuji8822 8:1d1b8298f0cd 31 wheelR1=dutyR;
yuji8822 8:1d1b8298f0cd 32 wheelR2=0;
yuji8822 8:1d1b8298f0cd 33 }
yuji8822 8:1d1b8298f0cd 34
yuji8822 8:1d1b8298f0cd 35 else if(dir==2)
yuji8822 8:1d1b8298f0cd 36 {
yuji8822 8:1d1b8298f0cd 37 wheelR2=dutyR;
yuji8822 8:1d1b8298f0cd 38 wheelR1=0;
yuji8822 8:1d1b8298f0cd 39 }
yuji8822 8:1d1b8298f0cd 40
yuji8822 8:1d1b8298f0cd 41 else if(dir==0)
yuji8822 8:1d1b8298f0cd 42 {
yuji8822 8:1d1b8298f0cd 43 wheelR1=0;
yuji8822 8:1d1b8298f0cd 44 wheelR2=0;
yuji8822 8:1d1b8298f0cd 45 }
yuji8822 8:1d1b8298f0cd 46
yuji8822 8:1d1b8298f0cd 47 }
yuji8822 8:1d1b8298f0cd 48
yuji8822 8:1d1b8298f0cd 49 void motorL(int dir,float dutyL)
yuji8822 8:1d1b8298f0cd 50 {
yuji8822 8:1d1b8298f0cd 51 if(dir==1)
yuji8822 8:1d1b8298f0cd 52 {
yuji8822 8:1d1b8298f0cd 53 wheelL1=dutyL;
yuji8822 8:1d1b8298f0cd 54 wheelL2=0;
yuji8822 8:1d1b8298f0cd 55 }
yuji8822 8:1d1b8298f0cd 56
yuji8822 8:1d1b8298f0cd 57 else if(dir==2)
yuji8822 8:1d1b8298f0cd 58 {
yuji8822 8:1d1b8298f0cd 59 wheelL1=0;
yuji8822 8:1d1b8298f0cd 60 wheelL2=dutyL;
yuji8822 8:1d1b8298f0cd 61 }
yuji8822 8:1d1b8298f0cd 62
yuji8822 8:1d1b8298f0cd 63 else if(dir==0)
yuji8822 8:1d1b8298f0cd 64 {
yuji8822 8:1d1b8298f0cd 65 wheelL1=0;
yuji8822 8:1d1b8298f0cd 66 wheelL2=0;
yuji8822 8:1d1b8298f0cd 67 }
yuji8822 8:1d1b8298f0cd 68
yuji8822 8:1d1b8298f0cd 69 }
yuji8822 8:1d1b8298f0cd 70
yuji8822 8:1d1b8298f0cd 71
yuji8822 8:1d1b8298f0cd 72
yuji8822 8:1d1b8298f0cd 73
yuji8822 8:1d1b8298f0cd 74 void UserLoopSetting()
yuji8822 8:1d1b8298f0cd 75 {
hirokimineshita 0:736c76a75def 76 //一度だけ行いたい初期設定をここに書く
hirokimineshita 0:736c76a75def 77 led1.period_ms(20);
hirokimineshita 0:736c76a75def 78 }
hirokimineshita 0:736c76a75def 79
yuji8822 8:1d1b8298f0cd 80 void UserLoop(char n,const u8* data)
yuji8822 8:1d1b8298f0cd 81 {
hirokimineshita 0:736c76a75def 82 u16 ButtonState;
yuji8822 8:1d1b8298f0cd 83 if(n==0)
yuji8822 8:1d1b8298f0cd 84 {//有線Ps3USB.cpp
yuji8822 8:1d1b8298f0cd 85 RSX = ((ps3report*)data)->RightStickX;
yuji8822 8:1d1b8298f0cd 86 RSY = ((ps3report*)data)->RightStickY;
yuji8822 8:1d1b8298f0cd 87 LSX = ((ps3report*)data)->LeftStickX;
yuji8822 8:1d1b8298f0cd 88 LSY = ((ps3report*)data)->LeftStickY;
yuji8822 8:1d1b8298f0cd 89 BSU = (u8)(((ps3report*)data)->ButtonState & 0x00ff);
yuji8822 8:1d1b8298f0cd 90 BSL = (u8)(((ps3report*)data)->ButtonState >> 8);
yuji8822 8:1d1b8298f0cd 91 //ボタンの処理
yuji8822 8:1d1b8298f0cd 92 ButtonState = ((ps3report*)data)->ButtonState;
yuji8822 8:1d1b8298f0cd 93 }
yuji8822 8:1d1b8298f0cd 94 else
yuji8822 8:1d1b8298f0cd 95 {//無線TestShell.cpp
yuji8822 8:1d1b8298f0cd 96 RSX = ((ps3report*)(data + 1))->RightStickX;
yuji8822 8:1d1b8298f0cd 97 RSY = ((ps3report*)(data + 1))->RightStickY;
yuji8822 8:1d1b8298f0cd 98 LSX = ((ps3report*)(data + 1))->LeftStickX;
yuji8822 8:1d1b8298f0cd 99 LSY = ((ps3report*)(data + 1))->LeftStickY;
yuji8822 8:1d1b8298f0cd 100 BSU = (u8)(((ps3report*)(data + 1))->ButtonState & 0x00ff);
yuji8822 8:1d1b8298f0cd 101 BSL = (u8)(((ps3report*)(data + 1))->ButtonState >> 8);
yuji8822 8:1d1b8298f0cd 102 //ボタンの処理
yuji8822 8:1d1b8298f0cd 103 ButtonState = ((ps3report*)(data + 1))->ButtonState;
yuji8822 8:1d1b8298f0cd 104 }
hirokimineshita 0:736c76a75def 105 //ここより下にプログラムを書く
hirokimineshita 0:736c76a75def 106 //データ取得例
yuji8822 8:1d1b8298f0cd 107
yuji8822 8:1d1b8298f0cd 108
yuji8822 8:1d1b8298f0cd 109
yuji8822 8:1d1b8298f0cd 110 if((ButtonState >> BUTTONUP)&1)
yuji8822 8:1d1b8298f0cd 111 {
yuji8822 8:1d1b8298f0cd 112 motorL(1,0.6);
yuji8822 8:1d1b8298f0cd 113 motorR(1,0.6);
yuji8822 8:1d1b8298f0cd 114 }
yuji8822 8:1d1b8298f0cd 115
yuji8822 8:1d1b8298f0cd 116 else if((ButtonState >> BUTTONLEFT)&1)
yuji8822 8:1d1b8298f0cd 117 {
yuji8822 8:1d1b8298f0cd 118 motorL(1,0.4);
yuji8822 8:1d1b8298f0cd 119 motorR(1,0.8);
yuji8822 8:1d1b8298f0cd 120 }
yuji8822 8:1d1b8298f0cd 121
yuji8822 8:1d1b8298f0cd 122 else if((ButtonState >> BUTTONRIGHT)&1)
yuji8822 8:1d1b8298f0cd 123 {
yuji8822 8:1d1b8298f0cd 124 motorL(1,0.8);
yuji8822 8:1d1b8298f0cd 125 motorR(1,0.4);
yuji8822 8:1d1b8298f0cd 126 }
yuji8822 8:1d1b8298f0cd 127
yuji8822 8:1d1b8298f0cd 128 else if((ButtonState >> BUTTONDOWN)&1)
yuji8822 8:1d1b8298f0cd 129 {
yuji8822 8:1d1b8298f0cd 130 motorL(2,0.6);
yuji8822 8:1d1b8298f0cd 131 motorR(2,0.6);
yuji8822 8:1d1b8298f0cd 132 }
yuji8822 8:1d1b8298f0cd 133
yuji8822 8:1d1b8298f0cd 134 else if((ButtonState >> BUTTONR1)&1)
yuji8822 8:1d1b8298f0cd 135 {
yuji8822 8:1d1b8298f0cd 136 motorL(1,0.3);
yuji8822 8:1d1b8298f0cd 137 motorR(2,0.3);
yuji8822 8:1d1b8298f0cd 138 }
yuji8822 8:1d1b8298f0cd 139
yuji8822 8:1d1b8298f0cd 140 else if((ButtonState >> BUTTONL1)&1)
yuji8822 8:1d1b8298f0cd 141 {
yuji8822 8:1d1b8298f0cd 142 motorL(2,0.3);
yuji8822 8:1d1b8298f0cd 143 motorR(1,0.3);
yuji8822 8:1d1b8298f0cd 144 }
yuji8822 8:1d1b8298f0cd 145
yuji8822 8:1d1b8298f0cd 146 else if((ButtonState >> BUTTONSQUARE) & 1)
yuji8822 8:1d1b8298f0cd 147 {
yuji8822 8:1d1b8298f0cd 148 launch1=1;
yuji8822 8:1d1b8298f0cd 149 launch2=0;
yuji8822 8:1d1b8298f0cd 150 }
yuji8822 8:1d1b8298f0cd 151 else if((ButtonState >> BUTTONCROSS) & 1)
yuji8822 8:1d1b8298f0cd 152 {
yuji8822 8:1d1b8298f0cd 153 launch1=0;
yuji8822 8:1d1b8298f0cd 154 launch2=1;
yuji8822 8:1d1b8298f0cd 155 }
yuji8822 8:1d1b8298f0cd 156
yuji8822 8:1d1b8298f0cd 157
yuji8822 8:1d1b8298f0cd 158 //ここより下にANALOGのプログラムを書く
yuji8822 8:1d1b8298f0cd 159 //ここより下にANALOGのプログラムを書く
yuji8822 8:1d1b8298f0cd 160
yuji8822 8:1d1b8298f0cd 161 //left up , right up
yuji8822 8:1d1b8298f0cd 162 else if(LSX/256.0f>0.3 && LSX/256.0f<0.7 && LSY/256.0f<0.3 &&
yuji8822 8:1d1b8298f0cd 163 RSX/256.0f>0.3 && RSX/256.0f<0.7 && RSY/256.0f<0.3)
yuji8822 8:1d1b8298f0cd 164 {
yuji8822 8:1d1b8298f0cd 165 motorR(1,0.5);
yuji8822 8:1d1b8298f0cd 166 motorL(1,0.5);
yuji8822 8:1d1b8298f0cd 167 }
yuji8822 8:1d1b8298f0cd 168
yuji8822 8:1d1b8298f0cd 169 //left down, right down
yuji8822 8:1d1b8298f0cd 170
yuji8822 8:1d1b8298f0cd 171 else if(LSX/256.0f>0.3 && LSX/256.0f<0.7 && LSY/256.0f>0.7 &&
yuji8822 8:1d1b8298f0cd 172 RSX/256.0f>0.3 && RSX/256.0f<0.7 && RSY/256.0f>0.7)
yuji8822 8:1d1b8298f0cd 173 {
yuji8822 8:1d1b8298f0cd 174 motorR(2,0.5);
yuji8822 8:1d1b8298f0cd 175 motorL(2,0.5);
yuji8822 8:1d1b8298f0cd 176 }
yuji8822 8:1d1b8298f0cd 177
yuji8822 8:1d1b8298f0cd 178 // left up , right down
yuji8822 8:1d1b8298f0cd 179 else if(LSX/256.0f>0.3 && LSX/256.0f<0.7 && LSY/256.0f<0.3 &&
yuji8822 8:1d1b8298f0cd 180 RSX/256.0f>0.3 && RSX/256.0f<0.7 && RSY/256.0f>0.7)
yuji8822 8:1d1b8298f0cd 181 {
yuji8822 8:1d1b8298f0cd 182 motorL(1,0.5);
yuji8822 8:1d1b8298f0cd 183 motorR(2,0.5);
yuji8822 8:1d1b8298f0cd 184 }
yuji8822 8:1d1b8298f0cd 185
yuji8822 8:1d1b8298f0cd 186 // left down, right up
yuji8822 8:1d1b8298f0cd 187
yuji8822 8:1d1b8298f0cd 188 else if(LSX/256.0f>0.3 && LSX/256.0f<0.7 && LSY/256.0f>0.7 &&
yuji8822 8:1d1b8298f0cd 189 RSX/256.0f>0.3 && RSX/256.0f<0.7 && RSY/256.0f<0.3)
yuji8822 8:1d1b8298f0cd 190 {
yuji8822 8:1d1b8298f0cd 191 motorL(2,0.5);
yuji8822 8:1d1b8298f0cd 192 motorR(1,0.5);
yuji8822 8:1d1b8298f0cd 193 }
yuji8822 8:1d1b8298f0cd 194
yuji8822 8:1d1b8298f0cd 195
yuji8822 8:1d1b8298f0cd 196
yuji8822 8:1d1b8298f0cd 197
yuji8822 8:1d1b8298f0cd 198
yuji8822 8:1d1b8298f0cd 199 else {
yuji8822 8:1d1b8298f0cd 200 motorL(0,0);
yuji8822 8:1d1b8298f0cd 201 motorR(0,0);
yuji8822 8:1d1b8298f0cd 202 }
yuji8822 8:1d1b8298f0cd 203
yuji8822 8:1d1b8298f0cd 204
yuji8822 8:1d1b8298f0cd 205
yuji8822 8:1d1b8298f0cd 206
yuji8822 8:1d1b8298f0cd 207
yuji8822 8:1d1b8298f0cd 208
yuji8822 8:1d1b8298f0cd 209
hirokimineshita 0:736c76a75def 210 led1=LSX/256.0f;
hirokimineshita 0:736c76a75def 211 led2=LSY/256.0f;
hirokimineshita 0:736c76a75def 212 led3=ButtonState & 0x0400; //L1の状態
hirokimineshita 0:736c76a75def 213 led4=ButtonState & 0x0800; //R1の状態
hirokimineshita 0:736c76a75def 214 //値の取得はps3.hを参照
yuji8822 8:1d1b8298f0cd 215 }
yuji8822 8:1d1b8298f0cd 216