team3 / Mbed 2 deprecated PS3_BlueUSB_user_old

Dependencies:   mbed

Fork of PS3_BlueUSB_user by ROBOSTEP_SHARE

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