another

Dependencies:   mbed KondoServoLibrary Encoder

Committer:
o2132613
Date:
Wed Sep 11 07:33:59 2019 +0000
Revision:
17:348c660ea6f6
Parent:
16:6837647755fe
Child:
18:f7c587f0f8b8
test

Who changed what in which revision?

UserRevisionLine numberNew 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 int RSX,RSY,LSX,LSY,BSU,BSL;
hirokimineshita 9:e5437ba3e920 10 //これより下に関数外に書く要素を記入する
o2132613 17:348c660ea6f6 11 PwmOut servo(p21); //check survo pin
o2132613 17:348c660ea6f6 12 SPI spi(p5,p6,p7);
o2132613 17:348c660ea6f6 13 DigitalOut cs(p8);
o2132613 17:348c660ea6f6 14 int Speed_Mode = 2 ;
o2132613 17:348c660ea6f6 15 int send;
o2132613 17:348c660ea6f6 16
baba2357 11:86d717718dbf 17
o2132613 17:348c660ea6f6 18 void UserLoopSetting()
o2132613 17:348c660ea6f6 19 {
o2132613 17:348c660ea6f6 20 spi.format(8,3);
o2132613 17:348c660ea6f6 21 spi.frequency(1000000);
o2132613 17:348c660ea6f6 22 servo.pulsewidth_us(1450);
hirokimineshita 0:736c76a75def 23 }
o2132613 17:348c660ea6f6 24 void UserLoop(char n,const u8* data)
o2132613 17:348c660ea6f6 25 {
o2132613 17:348c660ea6f6 26 printf("start");
hirokimineshita 0:736c76a75def 27 u16 ButtonState;
o2132613 17:348c660ea6f6 28 if(n==0) { //有線Ps3USB.cpp
hirokimineshita 0:736c76a75def 29 RSX = ((ps3report*)data)->RightStickX;
hirokimineshita 0:736c76a75def 30 RSY = ((ps3report*)data)->RightStickY;
hirokimineshita 0:736c76a75def 31 LSX = ((ps3report*)data)->LeftStickX;
hirokimineshita 0:736c76a75def 32 LSY = ((ps3report*)data)->LeftStickY;
hirokimineshita 0:736c76a75def 33 BSU = (u8)(((ps3report*)data)->ButtonState & 0x00ff);
hirokimineshita 0:736c76a75def 34 BSL = (u8)(((ps3report*)data)->ButtonState >> 8);
hirokimineshita 0:736c76a75def 35 //ボタンの処理
hirokimineshita 0:736c76a75def 36 ButtonState = ((ps3report*)data)->ButtonState;
o2132613 17:348c660ea6f6 37 } else {//無線TestShell.cpp
hirokimineshita 0:736c76a75def 38 RSX = ((ps3report*)(data + 1))->RightStickX;
hirokimineshita 0:736c76a75def 39 RSY = ((ps3report*)(data + 1))->RightStickY;
hirokimineshita 0:736c76a75def 40 LSX = ((ps3report*)(data + 1))->LeftStickX;
hirokimineshita 0:736c76a75def 41 LSY = ((ps3report*)(data + 1))->LeftStickY;
hirokimineshita 0:736c76a75def 42 BSU = (u8)(((ps3report*)(data + 1))->ButtonState & 0x00ff);
hirokimineshita 0:736c76a75def 43 BSL = (u8)(((ps3report*)(data + 1))->ButtonState >> 8);
hirokimineshita 0:736c76a75def 44 //ボタンの処理
hirokimineshita 0:736c76a75def 45 ButtonState = ((ps3report*)(data + 1))->ButtonState;
hirokimineshita 0:736c76a75def 46 }
hirokimineshita 0:736c76a75def 47 //ここより下にプログラムを書く
o2132613 17:348c660ea6f6 48 //spi通信用プログラム
o2132613 17:348c660ea6f6 49 send = 0;
o2132613 17:348c660ea6f6 50 if((ButtonState >> BUTTONUP)&1 == 1&&(ButtonState >> BUTTONL1)&1 == 1)//UPL1
o2132613 17:348c660ea6f6 51 {
o2132613 17:348c660ea6f6 52 send = 84;
o2132613 17:348c660ea6f6 53 }else if ((ButtonState >> BUTTONDOWN)&1 == 1&&(ButtonState >> BUTTONR1)&1 == 1)//DownR1
o2132613 17:348c660ea6f6 54 {
o2132613 17:348c660ea6f6 55 send = 168;
o2132613 17:348c660ea6f6 56 }else if ((ButtonState >> BUTTONUP)&1 == 1&&(ButtonState >> BUTTONR1)&1 == 1)//UPR1
o2132613 17:348c660ea6f6 57 {
o2132613 17:348c660ea6f6 58 send = 148;
o2132613 17:348c660ea6f6 59 }else if ((ButtonState >> BUTTONDOWN)&1 == 1&&(ButtonState >> BUTTONL1)&1 == 1)//DownL1
o2132613 17:348c660ea6f6 60 {
o2132613 17:348c660ea6f6 61 send = 104;
o2132613 17:348c660ea6f6 62 }else if((ButtonState >> BUTTONUP)&1 == 1)
o2132613 17:348c660ea6f6 63 {//対応するボタンを書く(今回上ボタン
o2132613 17:348c660ea6f6 64 send = 20;
o2132613 17:348c660ea6f6 65 }else if((ButtonState >> BUTTONDOWN)&1 == 1)
o2132613 17:348c660ea6f6 66 {//対応するボタンを書く(今回下ボタン
o2132613 17:348c660ea6f6 67 send = 40;
o2132613 17:348c660ea6f6 68 }else if((ButtonState >> BUTTONL1)&1 == 1)
o2132613 17:348c660ea6f6 69 {//対応するボタンを書く(今回L1ボタン
o2132613 17:348c660ea6f6 70 send = 100;
o2132613 17:348c660ea6f6 71 }else if((ButtonState >> BUTTONR1)&1 == 1)
o2132613 17:348c660ea6f6 72 {//対応するボタンを書く(今回R1ボタン
o2132613 17:348c660ea6f6 73 send = 152;
abcdefgh 13:3d7a8cb91eeb 74 }else{
o2132613 17:348c660ea6f6 75 send = 0;
o2132613 17:348c660ea6f6 76 }
o2132613 17:348c660ea6f6 77 if((ButtonState >> BUTTONL2)&1 == 1&&Speed_Mode>1) {//対応するボタンを書く(今回L2ボタン
o2132613 17:348c660ea6f6 78 Speed_Mode-=1;
o2132613 17:348c660ea6f6 79 wait(0.1);
o2132613 17:348c660ea6f6 80 }else if((ButtonState >> BUTTONR2)&1 == 1&&Speed_Mode<3) {//対応するボタンを書く(今回R2ボタン
o2132613 17:348c660ea6f6 81 Speed_Mode+=1;
o2132613 17:348c660ea6f6 82 wait(0.1);
o2132613 17:348c660ea6f6 83 }else{
o2132613 17:348c660ea6f6 84 break;
o2132613 17:348c660ea6f6 85 }
o2132613 17:348c660ea6f6 86 if((ButtonState >> BUTTONTRIANGEL)&1 == 1) {//対応するボタンを書く(今回△ボタン
o2132613 17:348c660ea6f6 87 servo.pulsewidth_us(1450);
o2132613 17:348c660ea6f6 88 } else if((ButtonState >> BUTTONCROSS)&1 == 1) {//対応するボタンを書く(今回×ボタン
o2132613 17:348c660ea6f6 89 servo.pulsewidth_us(2400);
o2132613 17:348c660ea6f6 90 }
o2132613 17:348c660ea6f6 91 send += Speed_Mode;
o2132613 17:348c660ea6f6 92 spi. write(send);
o2132613 17:348c660ea6f6 93 printf("%a\r\n",send);
hirokimineshita 0:736c76a75def 94 }