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

Dependencies:   SPI_master_arm_shudouki mbed

Fork of SPI_master_arm_shudouki2 by F^3 RC 2班

Committer:
yoka06
Date:
Mon Sep 04 13:02:43 2017 +0000
Revision:
2:faa028d2f2f8
Parent:
1:5b008a48a49c
?

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 2:faa028d2f2f8 28 spi.format(8,3);
yoka06 2:faa028d2f2f8 29 spi.frequency(1000000);
yoka06 2:faa028d2f2f8 30
yoka06 0:76d1c7f13415 31 }
yoka06 0:76d1c7f13415 32
yoka06 0:76d1c7f13415 33 void UserLoop(char n,const u8* data)
yoka06 0:76d1c7f13415 34 {
yoka06 0:76d1c7f13415 35 u16 ButtonState;
yoka06 0:76d1c7f13415 36 if(n==0) { //有線Ps3USB.cpp
yoka06 0:76d1c7f13415 37 RSX = ((ps3report*)data)->RightStickX;
yoka06 0:76d1c7f13415 38 RSY = ((ps3report*)data)->RightStickY;
yoka06 0:76d1c7f13415 39 LSX = ((ps3report*)data)->LeftStickX;
yoka06 0:76d1c7f13415 40 LSY = ((ps3report*)data)->LeftStickY;
yoka06 0:76d1c7f13415 41 BSU = (u8)(((ps3report*)data)->ButtonState & 0x00ff);
yoka06 0:76d1c7f13415 42 BSL = (u8)(((ps3report*)data)->ButtonState >> 8);
yoka06 0:76d1c7f13415 43 //ボタンの処理
yoka06 0:76d1c7f13415 44 ButtonState = ((ps3report*)data)->ButtonState;
yoka06 0:76d1c7f13415 45 } else {//無線TestShell.cpp
yoka06 0:76d1c7f13415 46 RSX = ((ps3report*)(data + 1))->RightStickX;
yoka06 0:76d1c7f13415 47 RSY = ((ps3report*)(data + 1))->RightStickY;
yoka06 0:76d1c7f13415 48 LSX = ((ps3report*)(data + 1))->LeftStickX;
yoka06 0:76d1c7f13415 49 LSY = ((ps3report*)(data + 1))->LeftStickY;
yoka06 0:76d1c7f13415 50 BSU = (u8)(((ps3report*)(data + 1))->ButtonState & 0x00ff);
yoka06 0:76d1c7f13415 51 BSL = (u8)(((ps3report*)(data + 1))->ButtonState >> 8);
yoka06 0:76d1c7f13415 52 //ボタンの処理
yoka06 0:76d1c7f13415 53 ButtonState = ((ps3report*)(data + 1))->ButtonState;
yoka06 0:76d1c7f13415 54 }
yoka06 0:76d1c7f13415 55 //ここより下にプログラムを書く
yoka06 0:76d1c7f13415 56
yoka06 2:faa028d2f2f8 57
yoka06 0:76d1c7f13415 58 send =a+b+c+d+e+f+g+h;
yoka06 0:76d1c7f13415 59
yoka06 0:76d1c7f13415 60
yoka06 1:5b008a48a49c 61 if((ButtonState >> BUTTONUP)&1 == 1) { // ▲で燃料用アーム展開
yoka06 1:5b008a48a49c 62 a= 1;
yoka06 1:5b008a48a49c 63 } else {
yoka06 1:5b008a48a49c 64 a= 0;
yoka06 1:5b008a48a49c 65 }
yoka06 0:76d1c7f13415 66
yoka06 1:5b008a48a49c 67 if((ButtonState >> BUTTONTRIANGEL)&1 == 1) { // △で燃料回収
yoka06 1:5b008a48a49c 68 b= 2;
yoka06 1:5b008a48a49c 69 } else {
yoka06 1:5b008a48a49c 70 b= 0 ;
yoka06 1:5b008a48a49c 71 }
yoka06 0:76d1c7f13415 72
yoka06 1:5b008a48a49c 73 if((ButtonState >> BUTTONLEFT)&1 == 1) { // ◀で燃料掃き出し
yoka06 1:5b008a48a49c 74 c= 4;
yoka06 1:5b008a48a49c 75 } else {
yoka06 1:5b008a48a49c 76 c= 0;
yoka06 1:5b008a48a49c 77 }
yoka06 0:76d1c7f13415 78
yoka06 1:5b008a48a49c 79 if((ButtonState >> BUTTONCIRCLE)&1 == 1) { // 〇でタンク回収
yoka06 1:5b008a48a49c 80 d= 8;
yoka06 1:5b008a48a49c 81 } else {
yoka06 1:5b008a48a49c 82 d= 0;
yoka06 1:5b008a48a49c 83 }
yoka06 0:76d1c7f13415 84
yoka06 1:5b008a48a49c 85 if((ButtonState >> BUTTONRIGHT)&1 == 1) { // ‣でタンク掃き出し
yoka06 1:5b008a48a49c 86 e= 16;
yoka06 1:5b008a48a49c 87 } else {
yoka06 1:5b008a48a49c 88 e= 0;
yoka06 1:5b008a48a49c 89 }
yoka06 0:76d1c7f13415 90
yoka06 1:5b008a48a49c 91 if((ButtonState >> BUTTONDOWN)&1 == 1) { // ▼で待機
yoka06 1:5b008a48a49c 92 f= 32;
yoka06 1:5b008a48a49c 93 } else {
yoka06 1:5b008a48a49c 94 f= 0;
yoka06 1:5b008a48a49c 95 }
yoka06 0:76d1c7f13415 96
yoka06 1:5b008a48a49c 97 if((ButtonState >> BUTTONCROSS)&1 == 1) { // ×でサンプル受け取り
yoka06 1:5b008a48a49c 98 g= 64;
yoka06 1:5b008a48a49c 99 } else {
yoka06 1:5b008a48a49c 100 g= 0;
yoka06 1:5b008a48a49c 101 }
yoka06 0:76d1c7f13415 102
yoka06 1:5b008a48a49c 103 if((ButtonState >> BUTTONSQUARE)&1 == 1) { // □でサンプル設置
yoka06 1:5b008a48a49c 104 h= 128;
yoka06 1:5b008a48a49c 105 } else {
yoka06 1:5b008a48a49c 106 h= 0;
yoka06 1:5b008a48a49c 107 }
yoka06 0:76d1c7f13415 108
yoka06 1:5b008a48a49c 109 cs= 0;
yoka06 1:5b008a48a49c 110 spi.write(send);
yoka06 1:5b008a48a49c 111 cs= 1;
yoka06 2:faa028d2f2f8 112 //printf("%d\r\n",send);
yoka06 0:76d1c7f13415 113
yoka06 1:5b008a48a49c 114
yoka06 0:76d1c7f13415 115 }