_

Dependencies:   mbed

Fork of PS3_BlueUSB_user_ver2 by 2017  部内対抗4班 ROBOSTEP

Files at this revision

API Documentation at this revision

Comitter:
yuto17320508
Date:
Mon Aug 21 04:51:26 2017 +0000
Parent:
15:c5258a4dee75
Commit message:
aaa

Changed in this revision

Socket.cpp Show annotated file Show diff for this revision Revisions of this file
User.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/Socket.cpp	Sat Apr 29 11:48:36 2017 +0000
+++ b/Socket.cpp	Mon Aug 21 04:51:26 2017 +0000
@@ -133,7 +133,6 @@
                 }
              }
         }
-
     }
     
     
--- a/User.cpp	Sat Apr 29 11:48:36 2017 +0000
+++ b/User.cpp	Mon Aug 21 04:51:26 2017 +0000
@@ -3,24 +3,25 @@
 #include "hci.h"
 #include "ps3.h"
 #include "User.h"
-
 #include "mbed.h"
 
 int RSX,RSY,LSX,LSY,BSU,BSL;
 //これより下に関数外に書く要素を記入する
-PwmOut led1(LED1);
-PwmOut led2(LED2);
-DigitalOut led3(LED3);
-DigitalOut led4(LED4);
+//spi通信用
+SPI spi(p5,p6,p7);
+DigitalOut cs(p8);
+
 
-void UserLoopSetting(){
-    //一度だけ行いたい初期設定をここに書く
-    led1.period_ms(20);
+void UserLoopSetting()
+{
+    spi.format(16,3);
+    spi.frequency(1000000);
 }
 
-void UserLoop(char n,const u8* data){
+void UserLoop(char n,const u8* data)
+{
     u16 ButtonState;
-    if(n==0){//有線Ps3USB.cpp
+    if(n==0) { //有線Ps3USB.cpp
         RSX = ((ps3report*)data)->RightStickX;
         RSY = ((ps3report*)data)->RightStickY;
         LSX = ((ps3report*)data)->LeftStickX;
@@ -29,7 +30,7 @@
         BSL = (u8)(((ps3report*)data)->ButtonState >> 8);
         //ボタンの処理
         ButtonState =  ((ps3report*)data)->ButtonState;
-    }else {//無線TestShell.cpp
+    } else {//無線TestShell.cpp
         RSX = ((ps3report*)(data + 1))->RightStickX;
         RSY = ((ps3report*)(data + 1))->RightStickY;
         LSX = ((ps3report*)(data + 1))->LeftStickX;
@@ -40,24 +41,81 @@
         ButtonState =  ((ps3report*)(data + 1))->ButtonState;
     }
     //ここより下にプログラムを書く
-    
-    
-    //データ取得例
-    if((ButtonState >> BUTTONCIRCLE)&1 == 1) {
-        led1 = 1;
-        //○が押されたとき
-    }else{
-        led1 = 0;
-        //○を押してないとき
+    //spi通信用プログラム
+
+    int a,b,c,d,e,f,g,h,i,j;
+    int send = 0;
+
+
+    while(1) {
+        if((ButtonState >> BUTTONTRIANGEL)&1 == 1) { //フォトトランジスタ1
+            a = 1;
+        } else {
+            a = 0;
+        }
+
+        if((ButtonState >> BUTTONCIRCLE)&1 == 1) {//フォトトランジスタ2
+            b = 2;
+        } else {
+            b = 0;
+        }
+
+        if((ButtonState >> BUTTONUP)&1 == 1) {//対応するボタンを書く(今回上ボタン
+            c = 4;
+        } else {
+            c = 0;
+        }
+
+        if((ButtonState >> BUTTONDOWN)&1 == 1) {//対応するボタンを書く(今回下ボタン
+            d = 8;
+        } else {
+            d = 0;
+        }
+
+        if((ButtonState >> BUTTONL1)&1 == 1) {//対応するボタンを書く(今回L1ボタン
+            e = 16;
+        } else {
+            e = 0;
         }
-        
-    led1=LSX/256.0f;
-    led2=LSY/256.0f;
-    led3=ButtonState & 0x0400;  //L1の状態
-    led4=ButtonState & 0x0800;  //R1の状態
-    //値の取得はps3.hを参照
-    //ここまでプログラム例    実機に乗せるときは消して大丈夫です
-    
-    
-        
+
+        if((ButtonState >> BUTTONL2)&1 == 1) {//対応するボタンを書く(今回L2ボタン
+            f = 32;
+        } else {
+            f = 0;
+        }
+
+        if((ButtonState >> BUTTONTRIANGEL)&1 == 1) {//対応するボタンを書く(今回△ボタン
+            g = 64;
+        } else {
+            g = 0;
+        }
+
+        if((ButtonState >> BUTTONCROSS)&1 == 1) {//対応するボタンを書く(今回×ボタン
+            h = 128;
+        } else {
+            h = 0;
+        }
+
+        if((ButtonState >> BUTTONR1)&1 == 1) {//対応するボタンを書く(今回R1ボタン
+            i = 256;
+        } else {
+            i = 0;
+        }
+
+        if((ButtonState >> BUTTONR2)&1 == 1) {//対応するボタンを書く(今回R2ボタン
+            j = 512;
+        } else {
+            j = 0;
+        }
+
+
+
+        send = a+b+c+d+e+f+g+h+i+j;
+
+        cs = 0;
+        spi. write(send);
+        cs = 1;
+        printf("%d\r\n",send);
+
+    }
 }
\ No newline at end of file