Inherit from SoftSerial and use software buffers for TX and RX. This allows the SoftSerial to operate in a IRQ driven mode. Overrides most (but not all) stdio functions as SoftSerial did

Dependencies:   Buffer SoftSerial

Dependents:   2014_Ensoul_Capstone F103RB_tcp_rtu_modbus_copy_v1_0 SDP_Testing Nucleo_SFM ... more

Fork of BufferedSerial by Sam Grove

Todo: Write something here :)

Files at this revision

API Documentation at this revision

Comitter:
sam_grove
Date:
Thu May 23 23:47:04 2013 +0000
Parent:
0:a977d0a3d81e
Child:
2:7e8a450a9101
Commit message:
Added prime (private member).Only want to pull from the buffer and write in one spot. prime stops irq's and call the member txIrq to put the oldest buffered byte in the transmitter. IRQ will pull the rest out once enabled again.

Changed in this revision

BufferedSerial.cpp Show annotated file Show diff for this revision Revisions of this file
BufferedSerial.h Show annotated file Show diff for this revision Revisions of this file
--- a/BufferedSerial.cpp	Thu May 23 19:31:30 2013 +0000
+++ b/BufferedSerial.cpp	Thu May 23 23:47:04 2013 +0000
@@ -59,7 +59,7 @@
 int BufferedSerial::putc(int c)
 {
     _txbuf = (char)c;
-    BufferedSerial::txIrq();    // prime the txirq to stoke transmit
+    BufferedSerial::prime();
     
     return c;
 }
@@ -72,7 +72,7 @@
     {
         _txbuf = *(s++);
     }
-    BufferedSerial::txIrq();    // prime the txirq to stoke transmit
+    BufferedSerial::prime();
     
     return s - size;
 }
@@ -118,5 +118,14 @@
     return;
 }
 
+void BufferedSerial::prime(void)
+{
+    __disable_irq();    // make sure not to cause contention in the irq 
+    BufferedSerial::txIrq();    // prime the txirq to stoke transmit
+    __enable_irq();
+    
+    return;
+}
 
 
+
--- a/BufferedSerial.h	Thu May 23 19:31:30 2013 +0000
+++ b/BufferedSerial.h	Thu May 23 23:47:04 2013 +0000
@@ -78,6 +78,7 @@
  
     void rxIrq(void);
     void txIrq(void);
+    void prime(void);
     
 public:
     /** Create a BufferedSerial port, connected to the specified transmit and receive pins