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 by
User.cpp@8:1d1b8298f0cd, 2015-05-27 (annotated)
- 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?
| User | Revision | Line number | New 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 | 
