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

Dependencies:   mbed

Fork of PS3_BlueUSB_user_ver_circlewar by 智也 馬場

Committer:
jack0325suzu
Date:
Thu Mar 10 04:51:16 2016 +0000
Revision:
18:299810a6dcb4
Parent:
17:ae30e74e9eba
aa;

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"
knumber16 15:d9485d4c3b8c 10 #include "S9706.h"
knumber16 15:d9485d4c3b8c 11 #include "SerialServo.h"
knumber16 15:d9485d4c3b8c 12 //#define DEBUG_MODE
knumber16 15:d9485d4c3b8c 13 #define ID 0
hirokimineshita 0:736c76a75def 14
knumber16 17:ae30e74e9eba 15 #define duty1 0.1
knumber16 17:ae30e74e9eba 16 #define duty2 0.1
knumber16 17:ae30e74e9eba 17 int servoflag = 0;
hirokimineshita 0:736c76a75def 18 int RSX,RSY,LSX,LSY,BSU,BSL;
hirokimineshita 9:e5437ba3e920 19 //これより下に関数外に書く要素を記入する
knumber16 17:ae30e74e9eba 20 DigitalOut LA(p18);
jack0325suzu 18:299810a6dcb4 21 DigitalOut RA(p21);
jack0325suzu 18:299810a6dcb4 22 DigitalOut LH(p19);
jack0325suzu 18:299810a6dcb4 23 DigitalOut RH(p20);
jack0325suzu 18:299810a6dcb4 24 DigitalOut CH(p23);
knumber16 17:ae30e74e9eba 25 PwmOut motor[2] = {p25,p26};
baba2357 10:bf0c0cdb487d 26 SPI m(p5, p6, p7);
baba2357 10:bf0c0cdb487d 27 DigitalOut cs(p8);
knumber16 15:d9485d4c3b8c 28 //Serial pc(USBTX,USBRX);
knumber16 15:d9485d4c3b8c 29
knumber16 15:d9485d4c3b8c 30 DigitalOut leds[4] = {LED1,LED2,LED3,LED4};
jack0325suzu 18:299810a6dcb4 31 int countA=0,countB=0,countC=0,countD=0;
knumber16 15:d9485d4c3b8c 32
knumber16 15:d9485d4c3b8c 33
knumber16 15:d9485d4c3b8c 34 //
jack0325suzu 18:299810a6dcb4 35 void UserLoopSetting()
jack0325suzu 18:299810a6dcb4 36 {
hirokimineshita 0:736c76a75def 37 //一度だけ行いたい初期設定をここに書く
knumber16 15:d9485d4c3b8c 38 LA=0;
knumber16 15:d9485d4c3b8c 39 RA=0;
knumber16 15:d9485d4c3b8c 40 LH=0;
knumber16 15:d9485d4c3b8c 41 RH=0;
knumber16 15:d9485d4c3b8c 42 CH=0;
knumber16 15:d9485d4c3b8c 43 initSerialServo();
hirokimineshita 0:736c76a75def 44 }
hirokimineshita 0:736c76a75def 45
jack0325suzu 18:299810a6dcb4 46 void UserLoop(char n,const u8* data)
jack0325suzu 18:299810a6dcb4 47 {
hirokimineshita 0:736c76a75def 48 u16 ButtonState;
jack0325suzu 18:299810a6dcb4 49 if(n==0) { //有線Ps3USB.cpp
hirokimineshita 0:736c76a75def 50 RSX = ((ps3report*)data)->RightStickX;
hirokimineshita 0:736c76a75def 51 RSY = ((ps3report*)data)->RightStickY;
hirokimineshita 0:736c76a75def 52 LSX = ((ps3report*)data)->LeftStickX;
hirokimineshita 0:736c76a75def 53 LSY = ((ps3report*)data)->LeftStickY;
hirokimineshita 0:736c76a75def 54 BSU = (u8)(((ps3report*)data)->ButtonState & 0x00ff);
hirokimineshita 0:736c76a75def 55 BSL = (u8)(((ps3report*)data)->ButtonState >> 8);
hirokimineshita 0:736c76a75def 56 //ボタンの処理
hirokimineshita 0:736c76a75def 57 ButtonState = ((ps3report*)data)->ButtonState;
jack0325suzu 18:299810a6dcb4 58 } else {//無線TestShell.cpp
hirokimineshita 0:736c76a75def 59 RSX = ((ps3report*)(data + 1))->RightStickX;
hirokimineshita 0:736c76a75def 60 RSY = ((ps3report*)(data + 1))->RightStickY;
hirokimineshita 0:736c76a75def 61 LSX = ((ps3report*)(data + 1))->LeftStickX;
hirokimineshita 0:736c76a75def 62 LSY = ((ps3report*)(data + 1))->LeftStickY;
hirokimineshita 0:736c76a75def 63 BSU = (u8)(((ps3report*)(data + 1))->ButtonState & 0x00ff);
hirokimineshita 0:736c76a75def 64 BSL = (u8)(((ps3report*)(data + 1))->ButtonState >> 8);
hirokimineshita 0:736c76a75def 65 //ボタンの処理
hirokimineshita 0:736c76a75def 66 ButtonState = ((ps3report*)(data + 1))->ButtonState;
hirokimineshita 0:736c76a75def 67 }
hirokimineshita 0:736c76a75def 68 //ここより下にプログラムを書く
hirokimineshita 0:736c76a75def 69 //データ取得例
jack0325suzu 18:299810a6dcb4 70
baba2357 10:bf0c0cdb487d 71 int M=0;
baba2357 10:bf0c0cdb487d 72 m.format(16,3);
baba2357 10:bf0c0cdb487d 73 m.frequency(1000000);
baba2357 10:bf0c0cdb487d 74 cs=0;
jack0325suzu 18:299810a6dcb4 75 /* if((ButtonState >> BUTTONCIRCLE)&1) {
jack0325suzu 18:299810a6dcb4 76 //○が押されたとき
jack0325suzu 18:299810a6dcb4 77 }
jack0325suzu 18:299810a6dcb4 78 */
jack0325suzu 18:299810a6dcb4 79 if((ButtonState >> BUTTONUP)&1) {
knumber16 17:ae30e74e9eba 80 motor[0]=0;
knumber16 17:ae30e74e9eba 81 motor[1]=0.1;
jack0325suzu 18:299810a6dcb4 82 } else if((ButtonState >> BUTTONDOWN)&1) {
knumber16 17:ae30e74e9eba 83 motor[1]=0;
knumber16 17:ae30e74e9eba 84 motor[0]=0.1;
jack0325suzu 18:299810a6dcb4 85 } else {
knumber16 17:ae30e74e9eba 86 motor[0]=0;
knumber16 17:ae30e74e9eba 87 motor[1]=0;
jack0325suzu 18:299810a6dcb4 88 }
jack0325suzu 18:299810a6dcb4 89 /* if((ButtonState >> BUTTONRIGHT)&1){
jack0325suzu 18:299810a6dcb4 90 set_degree(ID,50);
jack0325suzu 18:299810a6dcb4 91 }else if((ButtonState >> BUTTONLEFT)&1){
jack0325suzu 18:299810a6dcb4 92 set_degree(ID,200);
jack0325suzu 18:299810a6dcb4 93 }else{*/
jack0325suzu 18:299810a6dcb4 94 if(servoflag == 0) {
knumber16 17:ae30e74e9eba 95 set_degree(ID,135);
knumber16 17:ae30e74e9eba 96 servoflag= 1;
jack0325suzu 18:299810a6dcb4 97 }
knumber16 17:ae30e74e9eba 98 // }
jack0325suzu 18:299810a6dcb4 99 if((ButtonState >> BUTTONL2)&1) {
jack0325suzu 18:299810a6dcb4 100 countA++;
jack0325suzu 18:299810a6dcb4 101 if(countA>50) {
jack0325suzu 18:299810a6dcb4 102 LA=!LA;
jack0325suzu 18:299810a6dcb4 103 RA=!RA;
jack0325suzu 18:299810a6dcb4 104 countA=0;
baba2357 10:bf0c0cdb487d 105 }
jack0325suzu 18:299810a6dcb4 106 } else if((ButtonState >> BUTTONR2)&1) {
jack0325suzu 18:299810a6dcb4 107 countA++;
jack0325suzu 18:299810a6dcb4 108 if(countA>50) {
jack0325suzu 18:299810a6dcb4 109 RA=!RA;
jack0325suzu 18:299810a6dcb4 110 LA=!LA;
jack0325suzu 18:299810a6dcb4 111 countA=0;
baba2357 12:d35077f98a08 112 }
jack0325suzu 18:299810a6dcb4 113 } else if((ButtonState >> BUTTONCROSS)&1) {
jack0325suzu 18:299810a6dcb4 114 countA++;
jack0325suzu 18:299810a6dcb4 115 if(countA>50) {
jack0325suzu 18:299810a6dcb4 116 RA=!RA;
jack0325suzu 18:299810a6dcb4 117 LA=!LA;
jack0325suzu 18:299810a6dcb4 118 countA=0;
baba2357 12:d35077f98a08 119 }
jack0325suzu 18:299810a6dcb4 120 } else if((ButtonState >> BUTTONCIRCLE)&1) {
jack0325suzu 18:299810a6dcb4 121 countB++;
jack0325suzu 18:299810a6dcb4 122 if(countB>50) {
jack0325suzu 18:299810a6dcb4 123 RH=!RH;
jack0325suzu 18:299810a6dcb4 124 countB=0;
baba2357 12:d35077f98a08 125 }
jack0325suzu 18:299810a6dcb4 126 } else if((ButtonState >> BUTTONTRIANGEL)&1) {
jack0325suzu 18:299810a6dcb4 127 countC++;
jack0325suzu 18:299810a6dcb4 128 if(countC>50) {
jack0325suzu 18:299810a6dcb4 129 CH=!CH;
jack0325suzu 18:299810a6dcb4 130 LH=!LH;
jack0325suzu 18:299810a6dcb4 131 countC=0;
baba2357 10:bf0c0cdb487d 132 }
jack0325suzu 18:299810a6dcb4 133 } else if((ButtonState >> BUTTONSQUARE)&1) {
jack0325suzu 18:299810a6dcb4 134 countD++;
jack0325suzu 18:299810a6dcb4 135 if(countD>50) {
jack0325suzu 18:299810a6dcb4 136 LH=!LH;
jack0325suzu 18:299810a6dcb4 137 CH=!CH;
jack0325suzu 18:299810a6dcb4 138 countD=0;
baba2357 10:bf0c0cdb487d 139 }
jack0325suzu 18:299810a6dcb4 140 }
jack0325suzu 18:299810a6dcb4 141 if((ButtonState >> BUTTONR1)&1) {
jack0325suzu 18:299810a6dcb4 142 M+=1 << 15;
jack0325suzu 18:299810a6dcb4 143 } else if((ButtonState >> BUTTONL1)&1) {
jack0325suzu 18:299810a6dcb4 144 M+=1 << 14;
jack0325suzu 18:299810a6dcb4 145 }
jack0325suzu 18:299810a6dcb4 146 if(LSX-128>=0) {
jack0325suzu 14:639d019dfee8 147 M+=((LSX-128)/2) << 7;
jack0325suzu 18:299810a6dcb4 148 } else if(LSX-128<0) {
jack0325suzu 18:299810a6dcb4 149 M+=1 << 13;
jack0325suzu 14:639d019dfee8 150 if(128-LSX==128)M+=63 << 7;
jack0325suzu 14:639d019dfee8 151 else M+=((128-LSX)/2) << 7;
jack0325suzu 18:299810a6dcb4 152 }
jack0325suzu 18:299810a6dcb4 153 if(LSY-127<=0) {
jack0325suzu 18:299810a6dcb4 154 M+=((127-LSY)/2);
jack0325suzu 18:299810a6dcb4 155 } else if(LSY-127>0) {
jack0325suzu 14:639d019dfee8 156 M+=1 << 6;
jack0325suzu 14:639d019dfee8 157 if(LSY-127==128)M+=63;
jack0325suzu 14:639d019dfee8 158 else M+=(LSY-127)/2;
jack0325suzu 18:299810a6dcb4 159 }
jack0325suzu 18:299810a6dcb4 160 #ifdef DEBUG_MODE
jack0325suzu 14:639d019dfee8 161 int MM,i,MA[16];
jack0325suzu 14:639d019dfee8 162 MM=M;
jack0325suzu 18:299810a6dcb4 163 for(i=0; MM>0; i++) {
jack0325suzu 14:639d019dfee8 164 MA[i]=MM % 2;
jack0325suzu 14:639d019dfee8 165 MM=MM/2;
jack0325suzu 14:639d019dfee8 166 }
jack0325suzu 18:299810a6dcb4 167 for(i=i+1; i<16; i++) {
jack0325suzu 14:639d019dfee8 168 MA[i]=0;
jack0325suzu 14:639d019dfee8 169 }
jack0325suzu 18:299810a6dcb4 170 for(i=15; i>=0; i--) {
jack0325suzu 18:299810a6dcb4 171 printf("%d",MA[i]);
jack0325suzu 18:299810a6dcb4 172 }
jack0325suzu 14:639d019dfee8 173 printf("\r\n");
jack0325suzu 18:299810a6dcb4 174 #endif
jack0325suzu 14:639d019dfee8 175 //printf("LSX=%d,LSY=%d\r\n",LSX,LSY);
jack0325suzu 14:639d019dfee8 176 printf("M=%d \r\n",M);
jack0325suzu 18:299810a6dcb4 177
jack0325suzu 18:299810a6dcb4 178 m.write(M);
jack0325suzu 18:299810a6dcb4 179
jack0325suzu 18:299810a6dcb4 180 /*
jack0325suzu 18:299810a6dcb4 181 led1=LSX/256.0f;
jack0325suzu 18:299810a6dcb4 182 led2=LSY/256.0f;
jack0325suzu 18:299810a6dcb4 183 led3=ButtonState & 0x0400; //L1の状態
jack0325suzu 18:299810a6dcb4 184 led4=ButtonState & 0x0800; //R1の状態
jack0325suzu 18:299810a6dcb4 185 */
jack0325suzu 18:299810a6dcb4 186
hirokimineshita 0:736c76a75def 187 //値の取得はps3.hを参照
jack0325suzu 14:639d019dfee8 188 cs=1;
knumber16 15:d9485d4c3b8c 189 // setID(ID);
knumber16 15:d9485d4c3b8c 190 // readID();
knumber16 15:d9485d4c3b8c 191 // readID();
jack0325suzu 18:299810a6dcb4 192
hirokimineshita 0:736c76a75def 193 }