Files at this revision

API Documentation at this revision

Comitter:
sgrsn
Date:
Sat Nov 05 07:01:59 2016 +0000
Commit message:
serial to my program in processing

Changed in this revision

serial.cpp Show annotated file Show diff for this revision Revisions of this file
serial.h Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/serial.cpp	Sat Nov 05 07:01:59 2016 +0000
@@ -0,0 +1,54 @@
+#include "serial.h"
+
+    serial::serial(PinName tx, PinName rx, char *_Registar) : Serial(tx, rx)
+    {
+        Registar = _Registar;
+        DATA = 0;
+        count = 0;
+        for(int i = 0; i < 4; i++)arrayDATA[i] = 0;
+        baud(115200);
+        attach(this, &serial::getdata, Serial::RxIrq);
+    }
+    void serial::getdata()
+    {
+        if(readable())
+        {
+            count = getc();
+            if(count <= 3 && count >= 0)
+            {
+                putc(arrayDATA[count]);
+            }
+            else
+            {
+                //if(readable())    //No
+                *( Registar + (count-4) ) = getc();
+            }
+        }
+    }
+
+    int serial::getdata(int reg, int size)
+    {
+        int data = 0;
+        for(int i = 0; i < size; i++)
+        {
+            data  |= *(Registar + + reg + i) << (i*8);
+        }
+        return data;
+    }
+    void serial::putpc(const int data)
+    {
+        DATA = data;
+        for(int i = 0; i < 4; i++)
+        {
+            arrayDATA[i] = ( DATA >> (i*8) ) & 0x0ff;
+        }
+    }
+    
+    int serial::operator[](int reg)
+    {
+        return getdata(reg, 4);
+    }
+    void serial::operator=(const int data)
+    {
+        putpc(data);
+    }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/serial.h	Sat Nov 05 07:01:59 2016 +0000
@@ -0,0 +1,71 @@
+#ifndef SERIAL_H
+#define SERIAL_H
+#include "mbed.h"
+
+class serial : public Serial
+{
+    public:
+    serial(PinName tx, PinName rx, char *_Registar);/* : Serial(tx, rx);
+    {
+        Registar = _Registar;
+        DATA = 0;
+        count = 0;
+        for(int i = 0; i < 4; i++)arrayDATA[i] = 0;
+        baud(115200);
+        attach(this, &serial::getdata, Serial::RxIrq);
+    }*/
+    
+    void getdata();
+    /*{
+        if(readable())
+        {
+            count = getc();
+            if(count <= 3 && count >= 0)
+            {
+                putc(arrayDATA[count]);
+            }
+            else
+            {
+                //if(readable())    //No
+                *( Registar + (count-4) ) = getc();
+            }
+        }
+    }*/
+
+    int getdata(int reg, int size);
+    /*{
+        int data = 0;
+        for(int i = 0; i < size; i++)
+        {
+            data  |= *(Registar + + reg + i) << (i*8);
+        }
+        return data;
+    }*/
+    
+    void putpc(const int data);
+    /*{
+        DATA = data;
+        for(int i = 0; i < 4; i++)
+        {
+            arrayDATA[i] = ( DATA >> (i*8) ) & 0x0ff;
+        }
+    }*/
+    
+    int operator[](int reg);
+    /*{
+        return getdata(reg, 4);
+    }*/
+    
+    void operator=(const int data);
+    /*{
+        putpc(data);
+    }*/
+    
+    private:
+    int DATA;
+    int arrayDATA[4];
+    int count;
+    char *Registar;
+};
+
+#endif
\ No newline at end of file