con_shiba

Dependencies:   mbed

Committer:
shibazakiwataru
Date:
Sun Oct 11 08:44:58 2020 +0000
Revision:
3:c95582aeaa4d
Parent:
2:d94fb02df854
contoro-ra-

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shibazakiwataru 1:8de783bf51f5 1 #include "mbed.h"//改変バージョン
sink 0:d83a0eaeb1d9 2 #include "string"
shibazakiwataru 2:d94fb02df854 3 #define INT_TIME 0.02
shibazakiwataru 1:8de783bf51f5 4
shibazakiwataru 1:8de783bf51f5 5
sink 0:d83a0eaeb1d9 6 Ticker timer;
sink 0:d83a0eaeb1d9 7 RawSerial pc(USBTX,USBRX,115200);
sink 0:d83a0eaeb1d9 8 RawSerial Master(D5,D4,115200);
shibazakiwataru 1:8de783bf51f5 9
sink 0:d83a0eaeb1d9 10 DigitalIn sw2(D2);
sink 0:d83a0eaeb1d9 11 DigitalIn sw3(D3);
sink 0:d83a0eaeb1d9 12 DigitalIn sw6(D6);
sink 0:d83a0eaeb1d9 13 DigitalIn sw7(D7);
sink 0:d83a0eaeb1d9 14 DigitalIn sw8(D8);
sink 0:d83a0eaeb1d9 15 DigitalIn sw9(D9);
sink 0:d83a0eaeb1d9 16 DigitalIn sw10(D10);
shibazakiwataru 1:8de783bf51f5 17
shibazakiwataru 1:8de783bf51f5 18 //AnalogIn joyL_x(A4);
shibazakiwataru 1:8de783bf51f5 19 //AnalogIn joyL_y(A3);
sink 0:d83a0eaeb1d9 20 AnalogIn joyR_x(A6);
sink 0:d83a0eaeb1d9 21 AnalogIn joyR_y(A5);
shibazakiwataru 1:8de783bf51f5 22
sink 0:d83a0eaeb1d9 23 bool per_rotR, pre_rotL, pre_up, pre_down, pre_handR, pre_handL, pre_other;
shibazakiwataru 1:8de783bf51f5 24
sink 0:d83a0eaeb1d9 25 bool sw_in(int sw, int pre_sw){
sink 0:d83a0eaeb1d9 26 bool rt_sw;
shibazakiwataru 3:c95582aeaa4d 27 if (sw == false && pre_sw == false) rt_sw = true;
sink 0:d83a0eaeb1d9 28 else rt_sw = false;
sink 0:d83a0eaeb1d9 29 return rt_sw;
sink 0:d83a0eaeb1d9 30 }
shibazakiwataru 1:8de783bf51f5 31
sink 0:d83a0eaeb1d9 32 void timer_warikomi(){
sink 0:d83a0eaeb1d9 33
shibazakiwataru 1:8de783bf51f5 34
sink 0:d83a0eaeb1d9 35 double d_joyx = joyR_x.read();
sink 0:d83a0eaeb1d9 36 double d_joyy = joyR_y.read();
sink 0:d83a0eaeb1d9 37
shibazakiwataru 3:c95582aeaa4d 38 pc.printf("%d,%d\n",d_joyx,d_joyy);
shibazakiwataru 3:c95582aeaa4d 39
shibazakiwataru 1:8de783bf51f5 40 int buttons_int = 0;
shibazakiwataru 1:8de783bf51f5 41
sink 0:d83a0eaeb1d9 42 bool rotR = sw2.read();
sink 0:d83a0eaeb1d9 43 bool rotL = sw3.read();
sink 0:d83a0eaeb1d9 44 bool up = sw6.read();
sink 0:d83a0eaeb1d9 45 bool down = sw7.read();
sink 0:d83a0eaeb1d9 46 bool handR = sw8.read();
sink 0:d83a0eaeb1d9 47 bool handL = sw9.read();
sink 0:d83a0eaeb1d9 48 bool other = sw10.read();
sink 0:d83a0eaeb1d9 49
sink 0:d83a0eaeb1d9 50 char buttons = 0b00000000;
sink 0:d83a0eaeb1d9 51
shibazakiwataru 1:8de783bf51f5 52 if(sw_in(up,pre_up)){
shibazakiwataru 1:8de783bf51f5 53 buttons = 0b00000001;//1
shibazakiwataru 1:8de783bf51f5 54 }
shibazakiwataru 1:8de783bf51f5 55 if(sw_in(down,pre_down)){
shibazakiwataru 1:8de783bf51f5 56 buttons = 0b00000010;//2
shibazakiwataru 1:8de783bf51f5 57 }
shibazakiwataru 1:8de783bf51f5 58 if(sw_in(handR,pre_handR)){
shibazakiwataru 1:8de783bf51f5 59 buttons = 0b00000100;//4
shibazakiwataru 1:8de783bf51f5 60 }
shibazakiwataru 1:8de783bf51f5 61 if(sw_in(handL,pre_handL)){
shibazakiwataru 1:8de783bf51f5 62 buttons = 0b00001000;//8
shibazakiwataru 1:8de783bf51f5 63 }
shibazakiwataru 1:8de783bf51f5 64 if(sw_in(other,pre_other)){
shibazakiwataru 1:8de783bf51f5 65 buttons = 0b00010000;//16
shibazakiwataru 1:8de783bf51f5 66 }
shibazakiwataru 3:c95582aeaa4d 67
shibazakiwataru 3:c95582aeaa4d 68 if(d_joyx <= 137 && d_joyx >= 117) d_joyx = 127;
shibazakiwataru 3:c95582aeaa4d 69 if(d_joyy <= 137 && d_joyy >= 117) d_joyy = 127;
shibazakiwataru 3:c95582aeaa4d 70
sink 0:d83a0eaeb1d9 71 char joyx = char(int(255.0 * d_joyx));
sink 0:d83a0eaeb1d9 72 char joyy = char(int(255.0 * d_joyy));
sink 0:d83a0eaeb1d9 73 char rot = char(127 + 100*sw_in(rotR,per_rotR)- 100*sw_in(rotL,pre_rotL));
sink 0:d83a0eaeb1d9 74
shibazakiwataru 1:8de783bf51f5 75
shibazakiwataru 1:8de783bf51f5 76 buttons_int = buttons;
shibazakiwataru 1:8de783bf51f5 77 pc.printf("%d,%d,%d,%d\n",joyx,joyy,rot,buttons_int);
sink 0:d83a0eaeb1d9 78
sink 0:d83a0eaeb1d9 79 Master.putc(joyx);
sink 0:d83a0eaeb1d9 80 Master.putc(joyy);
sink 0:d83a0eaeb1d9 81 Master.putc(rot);
shibazakiwataru 1:8de783bf51f5 82 Master.putc(buttons_int);
sink 0:d83a0eaeb1d9 83 Master.putc('\n');
sink 0:d83a0eaeb1d9 84
sink 0:d83a0eaeb1d9 85 per_rotR = rotR;
sink 0:d83a0eaeb1d9 86 pre_rotL = rotL;
sink 0:d83a0eaeb1d9 87 pre_up = up;
sink 0:d83a0eaeb1d9 88 pre_down = down;
sink 0:d83a0eaeb1d9 89 pre_handR = handR;
sink 0:d83a0eaeb1d9 90 pre_handL = handL;
sink 0:d83a0eaeb1d9 91 pre_other = other;
sink 0:d83a0eaeb1d9 92 }
shibazakiwataru 1:8de783bf51f5 93
sink 0:d83a0eaeb1d9 94 int main()
sink 0:d83a0eaeb1d9 95 {
sink 0:d83a0eaeb1d9 96
sink 0:d83a0eaeb1d9 97 timer.attach(&timer_warikomi,INT_TIME);
sink 0:d83a0eaeb1d9 98
sink 0:d83a0eaeb1d9 99 while(true) {}
shibazakiwataru 1:8de783bf51f5 100 }