Andriy Makukha / Mbed 2 deprecated football_project_wo_output

Dependencies:   mbed

Fork of football_project by MZJ

Revision:
7:205ef63d311a
Parent:
6:ef758ac3c928
Child:
8:d5d055be2bb8
--- a/io/MySerial.cpp	Fri Apr 17 20:55:25 2015 +0000
+++ b/io/MySerial.cpp	Fri Apr 17 22:12:43 2015 +0000
@@ -21,7 +21,7 @@
 extern serial_t stdio_uart;
 
 // Our versions of serial_api.c's...
-// (serial_free(), etc. in serial_api.c won't work because we have our own copy.)
+// (serial_free(), etc. in serial_api.c won't work wehn we use our own copy.)
 #define UART_NUM    1
 static uint32_t serial_irq_ids[UART_NUM] = {0};
 static uart_irq_handler irq_handler;
@@ -34,12 +34,15 @@
                             PinName rts, PinName cts ) : _my_serial(), _my_baud( 9600 )
 {
     my_serial_init( &_my_serial, tx, rx, rts, cts, _my_baud );
-    my_serial_irq_handler( &_my_serial, _irq_handler, (uint32_t)this );
+    serial_irq_handler( &_my_serial, _irq_handler, (uint32_t)this );  // serial_api.c only calls handler for Tx & Rx.
+
+    // Won't work until we use our own UART0_IRQHandler (alter serial_api.c / rebuild mbed lib.)
+//    my_serial_irq_handler( &_my_serial, _irq_handler, (uint32_t)this );
 
     // For cts         -- Won't work until we use our own UART0_IRQHandler (alter serial_api.c / rebuild mbed lib.)
-    attach( this, &MySerialBase::cts_handler, (Serial::IrqType)CtsIrq );
+//    attach( this, &MySerialBase::cts_handler, (Serial::IrqType)CtsIrq );
     // For uart errors -- Won't work until we use our own UART0_IRQHandler (alter serial_api.c / rebuild mbed lib.)
-    attach( this, &MySerialBase::error_handler, (Serial::IrqType)ErrIrq );
+//    attach( this, &MySerialBase::error_handler, (Serial::IrqType)ErrIrq );
 }
 void MySerialBase::baud( int baudrate )
 {
@@ -130,13 +133,15 @@
         memcpy(&stdio_uart, obj, sizeof(serial_t));
     }
 }
+
+//  Won't work until we use our own UART0_IRQHandler (alter serial_api.c / rebuild mbed lib.)
 void MySerialBase::my_serial_irq_handler( serial_t *obj, uart_irq_handler handler, uint32_t id )
 {
     irq_handler                = handler;
     serial_irq_ids[obj->index] = id;
 }
 
-// Replacement for serial_irq_set() in serial_api.c so we can grab uart errors.
+// Replacement for serial_irq_set() in serial_api.c so we can eventually grab uart errors.
 void MySerialBase::my_serial_irq_set( serial_t *obj, IrqType irq, uint32_t enable )
 {
     IRQn_Type irq_n = (IRQn_Type)0;
@@ -161,6 +166,15 @@
           case ErrIrq:
             obj->uart->INTEN |= (UART_INTENSET_ERROR_Msk);
             break;
+          case CtsIrq:
+            obj->uart->INTEN |= (UART_INTENCLR_CTS_Msk);
+            break;
+          case NctsIrq:
+            obj->uart->INTEN |= (UART_INTENCLR_NCTS_Msk);
+            break;
+          case RxtoIrq:
+            obj->uart->INTEN |= (UART_INTENCLR_RXTO_Msk);
+            break;
         }
         NVIC_SetPriority( irq_n, 3 );
         NVIC_EnableIRQ( irq_n );
@@ -181,6 +195,15 @@
             case ErrIrq:
               obj->uart->INTEN &= ~(UART_INTENCLR_ERROR_Msk);
               break;
+            case CtsIrq:
+              obj->uart->INTEN &= ~(UART_INTENCLR_CTS_Msk);
+              break;
+            case NctsIrq:
+              obj->uart->INTEN &= ~(UART_INTENCLR_NCTS_Msk);
+              break;
+            case RxtoIrq:
+              obj->uart->INTEN &= ~(UART_INTENCLR_RXTO_Msk);
+              break;
           }
 
           if( 0 == obj->uart->INTENCLR )
@@ -339,4 +362,5 @@
 }
 #endif
 
+
 /* EOF */