手動機アーム、mbed基盤のspiをおくるだけのプログラムです(9/4)

Dependencies:   SPI_master_arm_shudouki mbed

Fork of SPI_master_arm_shudouki2 by F^3 RC 2班

Committer:
yoka06
Date:
Wed Aug 23 04:04:15 2017 +0000
Revision:
1:5b008a48a49c
Parent:
0:76d1c7f13415
Child:
2:faa028d2f2f8
?

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yoka06 0:76d1c7f13415 1 #include "Utils.h"
yoka06 0:76d1c7f13415 2 #include "USBHost.h"
yoka06 0:76d1c7f13415 3 #include "hci.h"
yoka06 0:76d1c7f13415 4 #include "ps3.h"
yoka06 0:76d1c7f13415 5 #include "User.h"
yoka06 0:76d1c7f13415 6
yoka06 0:76d1c7f13415 7
yoka06 0:76d1c7f13415 8 #include "mbed.h"
yoka06 0:76d1c7f13415 9 int RSX,RSY,LSX,LSY,BSU,BSL;
yoka06 0:76d1c7f13415 10 int a,b,c,d,e,f,g,h;
yoka06 0:76d1c7f13415 11 int send=0;
yoka06 0:76d1c7f13415 12
yoka06 0:76d1c7f13415 13
yoka06 0:76d1c7f13415 14
yoka06 0:76d1c7f13415 15 //これより下に関数外に書く要素を記入する
yoka06 0:76d1c7f13415 16 PwmOut led1(LED1);
yoka06 0:76d1c7f13415 17 PwmOut led2(LED2);
yoka06 0:76d1c7f13415 18 DigitalOut led3(LED3);
yoka06 0:76d1c7f13415 19 DigitalOut led4(LED4);
yoka06 0:76d1c7f13415 20
yoka06 0:76d1c7f13415 21 SPI spi(p5,p6,p7);
yoka06 0:76d1c7f13415 22 DigitalOut cs(p8);
yoka06 0:76d1c7f13415 23
yoka06 0:76d1c7f13415 24 void UserLoopSetting()
yoka06 0:76d1c7f13415 25 {
yoka06 0:76d1c7f13415 26 //一度だけ行いたい初期設定をここに書く
yoka06 0:76d1c7f13415 27 led1.period_ms(20);
yoka06 0:76d1c7f13415 28 }
yoka06 0:76d1c7f13415 29
yoka06 0:76d1c7f13415 30 void UserLoop(char n,const u8* data)
yoka06 0:76d1c7f13415 31 {
yoka06 0:76d1c7f13415 32 u16 ButtonState;
yoka06 0:76d1c7f13415 33 if(n==0) { //有線Ps3USB.cpp
yoka06 0:76d1c7f13415 34 RSX = ((ps3report*)data)->RightStickX;
yoka06 0:76d1c7f13415 35 RSY = ((ps3report*)data)->RightStickY;
yoka06 0:76d1c7f13415 36 LSX = ((ps3report*)data)->LeftStickX;
yoka06 0:76d1c7f13415 37 LSY = ((ps3report*)data)->LeftStickY;
yoka06 0:76d1c7f13415 38 BSU = (u8)(((ps3report*)data)->ButtonState & 0x00ff);
yoka06 0:76d1c7f13415 39 BSL = (u8)(((ps3report*)data)->ButtonState >> 8);
yoka06 0:76d1c7f13415 40 //ボタンの処理
yoka06 0:76d1c7f13415 41 ButtonState = ((ps3report*)data)->ButtonState;
yoka06 0:76d1c7f13415 42 } else {//無線TestShell.cpp
yoka06 0:76d1c7f13415 43 RSX = ((ps3report*)(data + 1))->RightStickX;
yoka06 0:76d1c7f13415 44 RSY = ((ps3report*)(data + 1))->RightStickY;
yoka06 0:76d1c7f13415 45 LSX = ((ps3report*)(data + 1))->LeftStickX;
yoka06 0:76d1c7f13415 46 LSY = ((ps3report*)(data + 1))->LeftStickY;
yoka06 0:76d1c7f13415 47 BSU = (u8)(((ps3report*)(data + 1))->ButtonState & 0x00ff);
yoka06 0:76d1c7f13415 48 BSL = (u8)(((ps3report*)(data + 1))->ButtonState >> 8);
yoka06 0:76d1c7f13415 49 //ボタンの処理
yoka06 0:76d1c7f13415 50 ButtonState = ((ps3report*)(data + 1))->ButtonState;
yoka06 0:76d1c7f13415 51 }
yoka06 0:76d1c7f13415 52 //ここより下にプログラムを書く
yoka06 0:76d1c7f13415 53
yoka06 0:76d1c7f13415 54 spi.format(8,3);
yoka06 0:76d1c7f13415 55 spi.frequency(1000000);
yoka06 0:76d1c7f13415 56
yoka06 0:76d1c7f13415 57 send =a+b+c+d+e+f+g+h;
yoka06 0:76d1c7f13415 58
yoka06 0:76d1c7f13415 59
yoka06 0:76d1c7f13415 60 // a= 0b1
yoka06 0:76d1c7f13415 61 // b= 0b10
yoka06 0:76d1c7f13415 62 // c= 0b100
yoka06 0:76d1c7f13415 63 // d= 0b1000
yoka06 0:76d1c7f13415 64 // e= 0b10000
yoka06 0:76d1c7f13415 65 // f= 0b100000
yoka06 0:76d1c7f13415 66 // g= 0b1000000
yoka06 0:76d1c7f13415 67 // h= 0b10000000
yoka06 0:76d1c7f13415 68
yoka06 1:5b008a48a49c 69
yoka06 0:76d1c7f13415 70
yoka06 1:5b008a48a49c 71 if((ButtonState >> BUTTONUP)&1 == 1) { // ▲で燃料用アーム展開
yoka06 1:5b008a48a49c 72 a= 1;
yoka06 1:5b008a48a49c 73 } else {
yoka06 1:5b008a48a49c 74 a= 0;
yoka06 1:5b008a48a49c 75 }
yoka06 0:76d1c7f13415 76
yoka06 1:5b008a48a49c 77 if((ButtonState >> BUTTONTRIANGEL)&1 == 1) { // △で燃料回収
yoka06 1:5b008a48a49c 78 b= 2;
yoka06 1:5b008a48a49c 79 } else {
yoka06 1:5b008a48a49c 80 b= 0 ;
yoka06 1:5b008a48a49c 81 }
yoka06 0:76d1c7f13415 82
yoka06 1:5b008a48a49c 83 if((ButtonState >> BUTTONLEFT)&1 == 1) { // ◀で燃料掃き出し
yoka06 1:5b008a48a49c 84 c= 4;
yoka06 1:5b008a48a49c 85 } else {
yoka06 1:5b008a48a49c 86 c= 0;
yoka06 1:5b008a48a49c 87 }
yoka06 0:76d1c7f13415 88
yoka06 1:5b008a48a49c 89 if((ButtonState >> BUTTONCIRCLE)&1 == 1) { // 〇でタンク回収
yoka06 1:5b008a48a49c 90 d= 8;
yoka06 1:5b008a48a49c 91 } else {
yoka06 1:5b008a48a49c 92 d= 0;
yoka06 1:5b008a48a49c 93 }
yoka06 0:76d1c7f13415 94
yoka06 1:5b008a48a49c 95 if((ButtonState >> BUTTONRIGHT)&1 == 1) { // ‣でタンク掃き出し
yoka06 1:5b008a48a49c 96 e= 16;
yoka06 1:5b008a48a49c 97 } else {
yoka06 1:5b008a48a49c 98 e= 0;
yoka06 1:5b008a48a49c 99 }
yoka06 0:76d1c7f13415 100
yoka06 1:5b008a48a49c 101 if((ButtonState >> BUTTONDOWN)&1 == 1) { // ▼で待機
yoka06 1:5b008a48a49c 102 f= 32;
yoka06 1:5b008a48a49c 103 } else {
yoka06 1:5b008a48a49c 104 f= 0;
yoka06 1:5b008a48a49c 105 }
yoka06 0:76d1c7f13415 106
yoka06 1:5b008a48a49c 107 if((ButtonState >> BUTTONCROSS)&1 == 1) { // ×でサンプル受け取り
yoka06 1:5b008a48a49c 108 g= 64;
yoka06 1:5b008a48a49c 109 } else {
yoka06 1:5b008a48a49c 110 g= 0;
yoka06 1:5b008a48a49c 111 }
yoka06 0:76d1c7f13415 112
yoka06 1:5b008a48a49c 113 if((ButtonState >> BUTTONSQUARE)&1 == 1) { // □でサンプル設置
yoka06 1:5b008a48a49c 114 h= 128;
yoka06 1:5b008a48a49c 115 } else {
yoka06 1:5b008a48a49c 116 h= 0;
yoka06 1:5b008a48a49c 117 }
yoka06 0:76d1c7f13415 118
yoka06 1:5b008a48a49c 119 cs= 0;
yoka06 1:5b008a48a49c 120 spi.write(send);
yoka06 1:5b008a48a49c 121 cs= 1;
yoka06 1:5b008a48a49c 122 printf("%d\r\n",send);
yoka06 0:76d1c7f13415 123
yoka06 1:5b008a48a49c 124
yoka06 0:76d1c7f13415 125 }