新部内対抗A班 / Mbed 2 deprecated PS3_BlueUSB_user_ver_circlewarA

Dependencies:   mbed

Fork of PS3_BlueUSB_user_ver_circlewar by 智也 馬場

Committer:
jack0325suzu
Date:
Wed Feb 17 08:34:51 2016 +0000
Revision:
14:639d019dfee8
Parent:
12:d35077f98a08
Child:
15:d9485d4c3b8c
??????????????????????????????????????2?????????????????R1?????????????????????????;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
baba2357 11:8288386dc376 1
baba2357 11:8288386dc376 2 /*分かれ!J!*/
baba2357 11:8288386dc376 3
hirokimineshita 0:736c76a75def 4 #include "Utils.h"
hirokimineshita 0:736c76a75def 5 #include "USBHost.h"
hirokimineshita 0:736c76a75def 6 #include "hci.h"
hirokimineshita 0:736c76a75def 7 #include "ps3.h"
hirokimineshita 0:736c76a75def 8 #include "User.h"
hirokimineshita 0:736c76a75def 9 #include "mbed.h"
jack0325suzu 14:639d019dfee8 10 #define DEBUG_MODE
hirokimineshita 0:736c76a75def 11
hirokimineshita 0:736c76a75def 12 int RSX,RSY,LSX,LSY,BSU,BSL;
hirokimineshita 9:e5437ba3e920 13 //これより下に関数外に書く要素を記入する
hirokimineshita 0:736c76a75def 14 PwmOut led1(LED1);
hirokimineshita 0:736c76a75def 15 PwmOut led2(LED2);
hirokimineshita 0:736c76a75def 16 DigitalOut led3(LED3);
hirokimineshita 0:736c76a75def 17 DigitalOut led4(LED4);
baba2357 12:d35077f98a08 18 DigitalOut LA(p21);
baba2357 12:d35077f98a08 19 DigitalOut RA(p23);
baba2357 12:d35077f98a08 20 DigitalOut LH(p22);
baba2357 12:d35077f98a08 21 DigitalOut RH(p24);
baba2357 12:d35077f98a08 22 DigitalOut CH(p25);
baba2357 10:bf0c0cdb487d 23 SPI m(p5, p6, p7);
baba2357 10:bf0c0cdb487d 24 DigitalOut cs(p8);
hirokimineshita 0:736c76a75def 25 void UserLoopSetting(){
hirokimineshita 0:736c76a75def 26 //一度だけ行いたい初期設定をここに書く
hirokimineshita 0:736c76a75def 27 led1.period_ms(20);
hirokimineshita 0:736c76a75def 28 }
hirokimineshita 0:736c76a75def 29
hirokimineshita 0:736c76a75def 30 void UserLoop(char n,const u8* data){
hirokimineshita 0:736c76a75def 31 u16 ButtonState;
hirokimineshita 0:736c76a75def 32 if(n==0){//有線Ps3USB.cpp
hirokimineshita 0:736c76a75def 33 RSX = ((ps3report*)data)->RightStickX;
hirokimineshita 0:736c76a75def 34 RSY = ((ps3report*)data)->RightStickY;
hirokimineshita 0:736c76a75def 35 LSX = ((ps3report*)data)->LeftStickX;
hirokimineshita 0:736c76a75def 36 LSY = ((ps3report*)data)->LeftStickY;
hirokimineshita 0:736c76a75def 37 BSU = (u8)(((ps3report*)data)->ButtonState & 0x00ff);
hirokimineshita 0:736c76a75def 38 BSL = (u8)(((ps3report*)data)->ButtonState >> 8);
hirokimineshita 0:736c76a75def 39 //ボタンの処理
hirokimineshita 0:736c76a75def 40 ButtonState = ((ps3report*)data)->ButtonState;
hirokimineshita 0:736c76a75def 41 }else {//無線TestShell.cpp
hirokimineshita 0:736c76a75def 42 RSX = ((ps3report*)(data + 1))->RightStickX;
hirokimineshita 0:736c76a75def 43 RSY = ((ps3report*)(data + 1))->RightStickY;
hirokimineshita 0:736c76a75def 44 LSX = ((ps3report*)(data + 1))->LeftStickX;
hirokimineshita 0:736c76a75def 45 LSY = ((ps3report*)(data + 1))->LeftStickY;
hirokimineshita 0:736c76a75def 46 BSU = (u8)(((ps3report*)(data + 1))->ButtonState & 0x00ff);
hirokimineshita 0:736c76a75def 47 BSL = (u8)(((ps3report*)(data + 1))->ButtonState >> 8);
hirokimineshita 0:736c76a75def 48 //ボタンの処理
hirokimineshita 0:736c76a75def 49 ButtonState = ((ps3report*)(data + 1))->ButtonState;
hirokimineshita 0:736c76a75def 50 }
hirokimineshita 0:736c76a75def 51 //ここより下にプログラムを書く
hirokimineshita 0:736c76a75def 52 //データ取得例
baba2357 10:bf0c0cdb487d 53 int M=0;
baba2357 10:bf0c0cdb487d 54 m.format(16,3);
baba2357 10:bf0c0cdb487d 55 m.frequency(1000000);
baba2357 10:bf0c0cdb487d 56 cs=0;
hirokimineshita 0:736c76a75def 57 if((ButtonState >> BUTTONCIRCLE)&1) {
hirokimineshita 0:736c76a75def 58 //○が押されたとき
hirokimineshita 0:736c76a75def 59 }
baba2357 10:bf0c0cdb487d 60 if((ButtonState >> BUTTONL2)&1){
baba2357 12:d35077f98a08 61 LA=1;
baba2357 10:bf0c0cdb487d 62 }
baba2357 10:bf0c0cdb487d 63 else if((ButtonState >> BUTTONR2)&1){
baba2357 12:d35077f98a08 64 RA=1;
baba2357 12:d35077f98a08 65 }
baba2357 12:d35077f98a08 66 else if((ButtonState >> BUTTONCROSS)&1){
baba2357 12:d35077f98a08 67 RA=1;
baba2357 12:d35077f98a08 68 LA=1;
baba2357 10:bf0c0cdb487d 69 }
baba2357 12:d35077f98a08 70 else if((ButtonState >> BUTTONCIRCLE)&1){
baba2357 12:d35077f98a08 71 RH=1;
baba2357 12:d35077f98a08 72 }
baba2357 12:d35077f98a08 73 else if((ButtonState >> BUTTONTRIANGEL)&1){
baba2357 12:d35077f98a08 74 CH=1;
baba2357 12:d35077f98a08 75 }
baba2357 12:d35077f98a08 76 else if((ButtonState >> BUTTONSQUARE)&1){
baba2357 12:d35077f98a08 77 LH=1;
baba2357 10:bf0c0cdb487d 78 }
baba2357 10:bf0c0cdb487d 79 if((ButtonState >> BUTTONR1)&1){
jack0325suzu 14:639d019dfee8 80 M+=1 << 15;
baba2357 10:bf0c0cdb487d 81 }
jack0325suzu 14:639d019dfee8 82 else if((ButtonState >> BUTTONL1)&1){
jack0325suzu 14:639d019dfee8 83 M+=1 << 14;
baba2357 10:bf0c0cdb487d 84 }
baba2357 10:bf0c0cdb487d 85 if(LSX-128>=0){
jack0325suzu 14:639d019dfee8 86 M+=1 << 13;
jack0325suzu 14:639d019dfee8 87 M+=((LSX-128)/2) << 7;
baba2357 10:bf0c0cdb487d 88 }
baba2357 10:bf0c0cdb487d 89 else if(LSX-128<0){
jack0325suzu 14:639d019dfee8 90 if(128-LSX==128)M+=63 << 7;
jack0325suzu 14:639d019dfee8 91 else M+=((128-LSX)/2) << 7;
jack0325suzu 14:639d019dfee8 92 }
jack0325suzu 14:639d019dfee8 93 if(LSY-127<=0){
jack0325suzu 14:639d019dfee8 94 M+=1 << 6;
jack0325suzu 14:639d019dfee8 95 M+=((127-LSY)/2);
jack0325suzu 14:639d019dfee8 96 }
jack0325suzu 14:639d019dfee8 97 else if(LSY-127>0){
jack0325suzu 14:639d019dfee8 98 if(LSY-127==128)M+=63;
jack0325suzu 14:639d019dfee8 99 else M+=(LSY-127)/2;
baba2357 10:bf0c0cdb487d 100 }
jack0325suzu 14:639d019dfee8 101 #ifdef DEBUG_MODE
jack0325suzu 14:639d019dfee8 102 int MM,i,MA[16];
jack0325suzu 14:639d019dfee8 103 MM=M;
jack0325suzu 14:639d019dfee8 104 for(i=0;MM>0;i++){
jack0325suzu 14:639d019dfee8 105 MA[i]=MM % 2;
jack0325suzu 14:639d019dfee8 106 MM=MM/2;
jack0325suzu 14:639d019dfee8 107 }
jack0325suzu 14:639d019dfee8 108 for(i=i+1;i<16;i++){
jack0325suzu 14:639d019dfee8 109 MA[i]=0;
jack0325suzu 14:639d019dfee8 110 }
jack0325suzu 14:639d019dfee8 111 for(i=15;i>=0;i--){printf("%d",MA[i]);}
jack0325suzu 14:639d019dfee8 112 printf("\r\n");
jack0325suzu 14:639d019dfee8 113 #endif
jack0325suzu 14:639d019dfee8 114 //printf("LSX=%d,LSY=%d\r\n",LSX,LSY);
jack0325suzu 14:639d019dfee8 115 printf("M=%d \r\n",M);
jack0325suzu 14:639d019dfee8 116
baba2357 10:bf0c0cdb487d 117 m.write(M);
baba2357 12:d35077f98a08 118
hirokimineshita 0:736c76a75def 119 led1=LSX/256.0f;
hirokimineshita 0:736c76a75def 120 led2=LSY/256.0f;
hirokimineshita 0:736c76a75def 121 led3=ButtonState & 0x0400; //L1の状態
hirokimineshita 0:736c76a75def 122 led4=ButtonState & 0x0800; //R1の状態
hirokimineshita 0:736c76a75def 123 //値の取得はps3.hを参照
jack0325suzu 14:639d019dfee8 124 cs=1;
hirokimineshita 0:736c76a75def 125 }