![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Buat agip
Dependencies: Motor_1 encoderKRAI mbed millis
Fork of Robo_Taker_Nasional_2018 by
Diff: JoystickPS3.h
- Revision:
- 3:b1403fcdaeb1
- Parent:
- 0:22acd37ed695
--- a/JoystickPS3.h Thu Mar 01 06:39:48 2018 +0000 +++ b/JoystickPS3.h Thu Mar 01 11:02:03 2018 +0000 @@ -1,11 +1,15 @@ -#ifndef JOYSTICK_NUCLEO_H -#define JOYSTICK_NUCLEO_H - +#ifndef MBED_H #include "mbed.h" +#endif + +#ifndef JoystickPS3__serialDEFAULT_BAUD #define JoystickPS3__serialDEFAULT_BAUD 115200 - +#endif + +//Serial debug(USBTX,USBRX); + namespace JoystickPS3 { - + class joysticknucleo { public: joysticknucleo(PinName tx, PinName rx) : _serial(tx, rx) @@ -23,8 +27,9 @@ void setup(){ _serial.baud(JoystickPS3__serialDEFAULT_BAUD); + // debug.baud(9600); } - + /*********************************************************************************************/ /** **/ /** FUNGSI PEMBACAAN DATA **/ @@ -53,7 +58,8 @@ /** **/ /*********************************************************************************************/ - void olah_data(){ + void olah_data() + { // Pengolahan data dari data "button" segitiga = (bool)((button >> 0) & 0x1); lingkaran = (bool)((button >> 1) & 0x1); @@ -73,6 +79,23 @@ SELECT = (bool)((RL >> 5) & 0x1); PS = (bool)((RL >> 6) & 0x1); + // R2 click dan L2 click + if (R2 > 100) { + if ( R2sebelum) { R2_click = false; + } else { R2_click = true;} + R2sebelum = true; + }else { + R2sebelum = false; + R2_click = false; + } + if (L2 > 100) { + if ( L2sebelum) { L2_click = false; + } else { L2_click = true;} + L2sebelum = true; + }else { L2sebelum = false; + L2_click = false; + } + segitiga_click = (bool)((button_click >> 0) & 0x1); lingkaran_click = (bool)((button_click >> 1) & 0x1); silang_click = (bool)((button_click >> 2) & 0x1); @@ -107,6 +130,8 @@ RL = 0; button_click = 0; RL_click = 0; + R2_click =0; + L2_click =0; R2 = 0; L2 = 0; RX = 0; @@ -116,7 +141,6 @@ } - /*********************************************************************************************/ /** **/ /** FUNGSI PEMBACAAN DATA **/ @@ -136,7 +160,8 @@ /** **/ /*********************************************************************************************/ - void baca_data(){ + void baca_data() + { // Interrupt Serial if(_serial.readable()&&(_serial.getc()==0x88)) { // Pembacaan data dilakukan jika data awal yang diterima adalah 0x88 kemudian 0x08 @@ -156,16 +181,17 @@ // PS3 Disconnected idle(); } else { - idle(); - } + idle(); } + // Indikator - Print data pada monitor PC + // debug.printf("%2x %2x %2x %2x %3d %3d %3d %3d %3d %3d\n\r",button, RL, button_click, RL_click, R2, L2, RX, RY, LX, LY); } } - - - + + int readable(){ return _serial.readable(); } + public: // Deklarasi variabel tombol joystik bool kiri, kanan, atas, bawah; @@ -174,16 +200,15 @@ bool kiri_click, kanan_click, atas_click, bawah_click; bool segitiga_click, lingkaran_click, kotak_click, silang_click; - bool L1_click, R1_click, L3_click, R3_click; + bool L1_click, R1_click, L3_click, R3_click, R2_click, L2_click; + bool R2sebelum,L2sebelum; bool START_click, SELECT_click, PS_click; protected: virtual int _getc(){return _serial.getc();} Serial _serial; }; - + }; - -using namespace JoystickPS3; - -#endif \ No newline at end of file + +using namespace JoystickPS3; \ No newline at end of file