PS3の移動ライブラリ(バグあり動作不可)です。 誠意製作中です。

Dependents:   NHK2018_BM

Committer:
tektomo
Date:
Thu Sep 27 09:24:36 2018 +0000
Revision:
2:9b3aeecc67d9
Parent:
1:5bb9feb40944
PID????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tektomo 0:1e79ec3fb922 1 #include "PS3_S.h"
tektomo 0:1e79ec3fb922 2
tektomo 0:1e79ec3fb922 3 PS3s::PS3s(PinName TX, PinName RX) : Serial(TX, RX)
tektomo 0:1e79ec3fb922 4 {
tektomo 0:1e79ec3fb922 5 baud(2400);
tektomo 1:5bb9feb40944 6 Rdata[0] = 128;
tektomo 0:1e79ec3fb922 7 Rdata[1] = 0;
tektomo 0:1e79ec3fb922 8 Rdata[2] = 0;
tektomo 1:5bb9feb40944 9 Rdata[3] = 64;
tektomo 1:5bb9feb40944 10 Rdata[4] = 64;
tektomo 1:5bb9feb40944 11 Rdata[5] = 64;
tektomo 1:5bb9feb40944 12 Rdata[6] = 64;
tektomo 0:1e79ec3fb922 13 Rdata[7] = 0;
tektomo 0:1e79ec3fb922 14 for(int i = 0; i < 18; i++) {
tektomo 0:1e79ec3fb922 15 condata[i] = 0;
tektomo 0:1e79ec3fb922 16 }
tektomo 0:1e79ec3fb922 17 }
tektomo 0:1e79ec3fb922 18
tektomo 0:1e79ec3fb922 19 void PS3s::getdata()
tektomo 0:1e79ec3fb922 20 {
tektomo 2:9b3aeecc67d9 21 if (Serial::readable()) {
tektomo 2:9b3aeecc67d9 22 while(Serial::getc() != 128) {}
tektomo 2:9b3aeecc67d9 23 for (int i = 1;i < 8;i++){
tektomo 2:9b3aeecc67d9 24 Rdata[i] = Serial::getc();
tektomo 0:1e79ec3fb922 25 }
tektomo 0:1e79ec3fb922 26 }
tektomo 0:1e79ec3fb922 27 }
tektomo 0:1e79ec3fb922 28
tektomo 0:1e79ec3fb922 29 void PS3s::checkdata()
tektomo 0:1e79ec3fb922 30 {
tektomo 2:9b3aeecc67d9 31 button1_buffer = Rdata[1];
tektomo 2:9b3aeecc67d9 32 button2_buffer = Rdata[2];
tektomo 2:9b3aeecc67d9 33 condata[14] = Rdata[3];
tektomo 2:9b3aeecc67d9 34 condata[15] = Rdata[4];
tektomo 2:9b3aeecc67d9 35 condata[16] = Rdata[5];
tektomo 2:9b3aeecc67d9 36 condata[17] = Rdata[6];
tektomo 0:1e79ec3fb922 37
tektomo 2:9b3aeecc67d9 38 int num1 = 16;
tektomo 2:9b3aeecc67d9 39 int num2 = 64;
tektomo 2:9b3aeecc67d9 40 int value1 = 0;
tektomo 2:9b3aeecc67d9 41 int value2 = 0;
tektomo 0:1e79ec3fb922 42
tektomo 2:9b3aeecc67d9 43 for(int i = 5; i >= 1; i--) {
tektomo 2:9b3aeecc67d9 44 value1 = i + 6;
tektomo 2:9b3aeecc67d9 45 if (button1_buffer >= num1) {
tektomo 2:9b3aeecc67d9 46 condata[value1] = 1;
tektomo 2:9b3aeecc67d9 47 button1_buffer -= num1;
tektomo 2:9b3aeecc67d9 48 } else {
tektomo 2:9b3aeecc67d9 49 condata[value1] = 0;
tektomo 2:9b3aeecc67d9 50 }
tektomo 2:9b3aeecc67d9 51 num1 /= 2;
tektomo 2:9b3aeecc67d9 52 }
tektomo 0:1e79ec3fb922 53
tektomo 2:9b3aeecc67d9 54 for(int j = 7; j >= 1; j--) {
tektomo 2:9b3aeecc67d9 55 value2 = j - 1;
tektomo 2:9b3aeecc67d9 56 if (button2_buffer - num2 >= 0) {
tektomo 2:9b3aeecc67d9 57 condata[value2] = 1;
tektomo 2:9b3aeecc67d9 58 button2_buffer -= num2;
tektomo 2:9b3aeecc67d9 59 } else {
tektomo 2:9b3aeecc67d9 60 condata[value2] = 0;
tektomo 0:1e79ec3fb922 61 }
tektomo 2:9b3aeecc67d9 62 num2 /= 2;
tektomo 2:9b3aeecc67d9 63 }
tektomo 2:9b3aeecc67d9 64 if(condata[0]!=0 && condata[1]!=0) {
tektomo 2:9b3aeecc67d9 65 condata[0] = 0;
tektomo 2:9b3aeecc67d9 66 condata[1] = 0;
tektomo 2:9b3aeecc67d9 67 condata[13] = 1;
tektomo 2:9b3aeecc67d9 68 } else if(condata[2]!=0 && condata[3]!=0) {
tektomo 2:9b3aeecc67d9 69 condata[2] = 0;
tektomo 2:9b3aeecc67d9 70 condata[3] = 0;
tektomo 2:9b3aeecc67d9 71 condata[12] = 1;
tektomo 2:9b3aeecc67d9 72 } else {
tektomo 2:9b3aeecc67d9 73 condata[12] = 0;
tektomo 2:9b3aeecc67d9 74 condata[13] = 0;
tektomo 0:1e79ec3fb922 75 }
tektomo 0:1e79ec3fb922 76 }