Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: robocon2017mbed_control_R
Fork of MyLib by
Diff: PS3/PS3.h
- Revision:
- 1:c75100913a65
- Child:
- 8:dd476889a42e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PS3/PS3.h Thu May 11 01:38:34 2017 +0000
@@ -0,0 +1,173 @@
+#ifndef PS3_H
+#define PS3_H
+#include "mbed.h"
+
+#define MARU 64
+#define BATU 32
+#define SIKAKU 1
+#define SANKAKU 16
+#define UE 1
+#define SITA 2
+#define MIGI 4
+#define HIDARI 8
+#define LEFT1 2
+#define LEFT2 4
+#define RIGHT1 8
+#define RIGHT2 16
+
+class PS3 : public Serial
+{
+ public:
+ PS3(PinName TX, PinName RX);
+ /*{
+ PS3Data[0] = 128;
+ PS3Data[1] = 0;
+ PS3Data[2] = 0;
+ PS3Data[3] = 64;
+ PS3Data[4] = 64;
+ PS3Data[5] = 64;
+ PS3Data[6] = 64;
+ PS3Data[7] = 0;
+ baud(2400);
+ Serial::attach(this, &PS3::getdata, Serial::RxIrq);
+ }*/
+
+ bool maru();
+ /*{
+ return PS3Data[2] & MARU;
+ }*/
+
+ bool batu();
+ /*{
+ return PS3Data[2] & BATU;
+ }*/
+
+ bool sikaku();
+ /*{
+ return PS3Data[1] & SIKAKU;
+ }*/
+
+ bool sankaku();
+ /*{
+ return PS3Data[2] & SANKAKU;
+ }*/
+
+ bool ue();
+ /*{
+ return PS3Data[2] & UE && !(PS3Data[2] & SITA);
+ }*/
+
+ bool sita();
+ /*{
+ return PS3Data[2] & SITA && !(PS3Data[2] & UE);
+ }*/
+
+ bool start();
+ /*{
+ return PS3Data[2] & UE && PS3Data[2] & SITA;
+ }*/
+
+ bool migi();
+ /*{
+ return PS3Data[2] & MIGI && !(PS3Data[2] & HIDARI);
+ }*/
+
+ bool hidari();
+ /*{
+ return PS3Data[2] & HIDARI && !(PS3Data[2] & MIGI);
+ }*/
+
+ bool select();
+ /*{
+ return PS3Data[2] & MIGI && PS3Data[2] & HIDARI;
+ }*/
+
+ bool L1();
+ /*{
+ return PS3Data[1] & LEFT1;
+ }*/
+
+ bool L2();
+ /*{
+ return PS3Data[1] & LEFT2;
+ }*/
+
+ bool R1();
+ /*{
+ return PS3Data[1] & RIGHT1;
+ }*/
+
+ bool R2();
+ /*{
+ return PS3Data[1] & RIGHT2;
+ }*/
+
+ int8_t analogLX();
+ /*{
+ if(PS3Data[3] == 0)
+ PS3Data[3]=1;
+ return PS3Data[3]-64;
+ }*/
+
+ int8_t analogLY();
+ /*{
+ if(PS3Data[4] == 0)
+ PS3Data[4]=1;
+ return (PS3Data[4]-64)*(-1);
+ }*/
+
+ int8_t analogRX();
+ /*{
+ if(PS3Data[5] == 0)
+ PS3Data[5]=1;
+ return PS3Data[5]-64;
+ }*/
+
+ int8_t analogRY();
+ /*{
+ if(PS3Data[6] == 0)
+ PS3Data[6]=1;
+ return (PS3Data[6]-64)*(-1);
+ }*/
+
+
+
+ private:
+
+ int8_t sum;
+ int8_t PS3Data[8];
+ int8_t GetData[8];
+
+ void getdata();
+ /*{
+ while(Serial::getc() != 128)
+ {
+ }
+ for(int i = 1;i < 8;i++)
+ {
+ GetData[i] = Serial::getc();
+ }
+
+ sum = GetData[1] + GetData[2];
+ for(int i = 3;i < 7;i++)
+ {
+ sum += GetData[i] - 64;
+ }
+
+ if(sum < 0)
+ sum+=128;
+
+ if(sum == GetData[7])
+ {
+ for(int i = 0;i < 8;i++)
+ {
+ PS3Data[i]=GetData[i];
+ }
+ }
+ }*/
+
+};
+
+#endif
+
+
\ No newline at end of file
