MODSERIAL with support for more devices

Dependents:   1D-Pong BMT-K9_encoder BMT-K9-Regelaar programma_filter ... more

Check the cookbook page for more information: https://mbed.org/cookbook/MODSERIAL

Did you add a device? Please send a pull request so we can keep everything in one library instead of many copies. In that case also send a PM, since currently mbed does not inform of new pull requests. I will then also add you to the developers of this library so you can do other changes directly.

Revision:
8:775f860e94d3
Parent:
1:b7e435fbfe8e
Child:
22:c11ea36f17f9
--- a/GETC.cpp	Mon Nov 22 09:19:50 2010 +0000
+++ b/GETC.cpp	Mon Nov 22 09:58:34 2010 +0000
@@ -28,6 +28,14 @@
 int 
 MODSERIAL::__getc(bool block)
 {
+    // If no buffer is in use fall back to standard RX FIFO usage.
+    // Note, we must block in this case and ignore bool "block" 
+    // so as to maintain compat with Mbed Serial.
+    if (buffer_size[RxIrq] == 0 || buffer[RxIrq] == (char *)NULL) {
+        while(! MODSERIAL_RBR_HAS_DATA ) ;
+        return (int)(_RBR & 0xFF);
+    }
+
     if (block) { while ( MODSERIAL_RX_BUFFER_EMPTY ) ; } // Blocks.
     else if ( MODSERIAL_RX_BUFFER_EMPTY ) return -1;