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

Dependencies:   mbed

Fork of PS3_BlueUSB_user_ver_circlewar by 智也 馬場

Committer:
knumber16
Date:
Thu Mar 10 01:48:16 2016 +0000
Revision:
15:d9485d4c3b8c
Parent:
14:639d019dfee8
Child:
16:90fb0ef425ac
add next; >>color sensor(s9706); >>serial servo;

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