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:
18:21ef26402365
Parent:
12:8c7394e2ae7f
Child:
27:9c93ce7cb9d8
--- a/ISR_RX.cpp	Tue Mar 08 01:42:25 2011 +0000
+++ b/ISR_RX.cpp	Thu Apr 21 09:20:41 2011 +0000
@@ -29,7 +29,7 @@
 MODSERIAL::isr_rx(void)
 {
     if (! _base || buffer_size[RxIrq] == 0 || buffer[RxIrq] == (char *)NULL) {
-        _isr[RxIrq].call(); 
+        _isr[RxIrq].call(&this->callbackInfo); 
         return;
     } 
     
@@ -37,9 +37,9 @@
         rxc = (char)(_RBR & 0xFF); 
         if ( MODSERIAL_RX_BUFFER_FULL ) {
             buffer_overflow[RxIrq] = rxc; // Oh dear, no room in buffer.
-            _isr[RxOvIrq].call();
-         }
-         else {
+            _isr[RxOvIrq].call(&this->callbackInfo);
+        }
+        else {
             if (buffer[RxIrq] != (char *)NULL) {
                 buffer[RxIrq][buffer_in[RxIrq]] = rxc;
                 buffer_count[RxIrq]++; 
@@ -48,10 +48,10 @@
                     buffer_in[RxIrq] = 0;
                 }
             }  
-            _isr[RxIrq].call(); 
+            _isr[RxIrq].call(&this->callbackInfo); 
         }
         if (auto_detect_char == rxc) {
-            _isr[RxAutoDetect].call();
+            _isr[RxAutoDetect].call(&this->callbackInfo);
         }
     }    
 }