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.

Files at this revision

API Documentation at this revision

Comitter:
Sissors
Date:
Sun Feb 08 19:59:54 2015 +0000
Parent:
38:a04506a9a55b
Child:
40:6ffa97119f4f
Commit message:
Added K22F support (probably)

Changed in this revision

Device/MODSERIAL_K64F.cpp Show diff for this revision Revisions of this file
Device/MODSERIAL_K64F.h Show diff for this revision Revisions of this file
Device/MODSERIAL_KSDK.cpp Show annotated file Show diff for this revision Revisions of this file
Device/MODSERIAL_KSDK.h Show annotated file Show diff for this revision Revisions of this file
MACROS.h Show annotated file Show diff for this revision Revisions of this file
--- a/Device/MODSERIAL_K64F.cpp	Fri Dec 12 08:49:27 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-#ifdef TARGET_K64F
-#include "MODSERIAL.h"
-
-void MODSERIAL::setBase(void ) {
-switch( _serial.index ) {
-        case 0: _base = UART0; _IRQ = UART0_RX_TX_IRQn; break;
-        case 1: _base = UART1; _IRQ = UART1_RX_TX_IRQn; break;
-        case 2: _base = UART2; _IRQ = UART2_RX_TX_IRQn; break;
-        case 3: _base = UART3; _IRQ = UART3_RX_TX_IRQn; break;
-        case 4: _base = UART4; _IRQ = UART4_RX_TX_IRQn; break;
-        default: _base = NULL; _IRQ = (IRQn_Type)NULL; break;
-    }
-}
-
-void MODSERIAL::initDevice(void) {};
-
-bool MODSERIAL::txIsBusy( void ) 
-{ 
-    return ( ((UART_Type*)_base)->S1 & ( 1UL << 6 ) == 0 ) ? true : false; 
-} 
-#endif
\ No newline at end of file
--- a/Device/MODSERIAL_K64F.h	Fri Dec 12 08:49:27 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-#if defined (TARGET_K64F)
-
-#define MODSERIAL_IRQ_REG ((UART_Type*)_base)->C2
-#define DISABLE_TX_IRQ MODSERIAL_IRQ_REG &= ~(1UL << UART_C2_TIE_SHIFT)
-#define DISABLE_RX_IRQ MODSERIAL_IRQ_REG &= ~(1UL << UART_C2_RIE_SHIFT)
-#define ENABLE_TX_IRQ MODSERIAL_IRQ_REG |= (1UL << UART_C2_TIE_SHIFT)
-#define ENABLE_RX_IRQ MODSERIAL_IRQ_REG |= (1UL << UART_C2_RIE_SHIFT)
-
-#define MODSERIAL_READ_REG ((UART_Type*)_base)->D
-#define MODSERIAL_WRITE_REG ((UART_Type*)_base)->D
-#define MODSERIAL_READABLE ((((UART_Type*)_base)->S1 & (1UL<<5)) != 0)
-#define MODSERIAL_WRITABLE ((((UART_Type*)_base)->S1 & (1UL<<7)) != 0)
-
-#define RESET_TX_FIFO while(0 == 1)
-#define RESET_RX_FIFO while(MODSERIAL_READABLE) char dummy = MODSERIAL_READ_REG
-
-#define RX_IRQ_ENABLED ((MODSERIAL_IRQ_REG & (1UL << UART_C2_RIE_SHIFT)) != 0 )
-#define TX_IRQ_ENABLED ((MODSERIAL_IRQ_REG & (1UL << UART_C2_TIE_SHIFT)) != 0 )
-
-#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Device/MODSERIAL_KSDK.cpp	Sun Feb 08 19:59:54 2015 +0000
@@ -0,0 +1,23 @@
+#ifdef TARGET_KPSDK_MCUS
+#include "MODSERIAL.h"
+
+void MODSERIAL::setBase(void ) {
+switch( _serial.index ) {
+        case 0: _base = UART0; _IRQ = UART0_RX_TX_IRQn; break;
+        case 1: _base = UART1; _IRQ = UART1_RX_TX_IRQn; break;
+        case 2: _base = UART2; _IRQ = UART2_RX_TX_IRQn; break;
+        #ifdef TARGET_K64F
+        case 3: _base = UART3; _IRQ = UART3_RX_TX_IRQn; break;
+        case 4: _base = UART4; _IRQ = UART4_RX_TX_IRQn; break;
+        #endif
+        default: _base = NULL; _IRQ = (IRQn_Type)NULL; break;
+    }
+}
+
+void MODSERIAL::initDevice(void) {};
+
+bool MODSERIAL::txIsBusy( void ) 
+{ 
+    return ( ((UART_Type*)_base)->S1 & ( 1UL << 6 ) == 0 ) ? true : false; 
+} 
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Device/MODSERIAL_KSDK.h	Sun Feb 08 19:59:54 2015 +0000
@@ -0,0 +1,20 @@
+#if defined (TARGET_KPSDK_MCUS)
+
+#define MODSERIAL_IRQ_REG ((UART_Type*)_base)->C2
+#define DISABLE_TX_IRQ MODSERIAL_IRQ_REG &= ~(1UL << UART_C2_TIE_SHIFT)
+#define DISABLE_RX_IRQ MODSERIAL_IRQ_REG &= ~(1UL << UART_C2_RIE_SHIFT)
+#define ENABLE_TX_IRQ MODSERIAL_IRQ_REG |= (1UL << UART_C2_TIE_SHIFT)
+#define ENABLE_RX_IRQ MODSERIAL_IRQ_REG |= (1UL << UART_C2_RIE_SHIFT)
+
+#define MODSERIAL_READ_REG ((UART_Type*)_base)->D
+#define MODSERIAL_WRITE_REG ((UART_Type*)_base)->D
+#define MODSERIAL_READABLE ((((UART_Type*)_base)->S1 & (1UL<<5)) != 0)
+#define MODSERIAL_WRITABLE ((((UART_Type*)_base)->S1 & (1UL<<7)) != 0)
+
+#define RESET_TX_FIFO while(0 == 1)
+#define RESET_RX_FIFO while(MODSERIAL_READABLE) char dummy = MODSERIAL_READ_REG
+
+#define RX_IRQ_ENABLED ((MODSERIAL_IRQ_REG & (1UL << UART_C2_RIE_SHIFT)) != 0 )
+#define TX_IRQ_ENABLED ((MODSERIAL_IRQ_REG & (1UL << UART_C2_TIE_SHIFT)) != 0 )
+
+#endif
\ No newline at end of file
--- a/MACROS.h	Fri Dec 12 08:49:27 2014 +0000
+++ b/MACROS.h	Sun Feb 08 19:59:54 2015 +0000
@@ -27,7 +27,7 @@
 #include "MODSERIAL_LPC11U24.h"
 #include "MODSERIAL_KL25Z.h"
 #include "MODSERIAL_KL05Z.h"
-#include "MODSERIAL_K64F.h"
+#include "MODSERIAL_KSDK.h"
 
 #define MODSERIAL_TX_BUFFER_EMPTY (buffer_count[TxIrq]==0)
 #define MODSERIAL_RX_BUFFER_EMPTY (buffer_count[RxIrq]==0)