Initial Fork

Dependents:   eBot_Firmware_V1

Fork of MODSERIAL by Erik -

Files at this revision

API Documentation at this revision

Comitter:
chaegle
Date:
Tue Apr 29 23:09:48 2014 +0000
Parent:
32:f42def64c4ee
Child:
35:180e968a751e
Commit message:
Added support for Freescale KL05Z and KL64F platforms.

Changed in this revision

Device/MODSERIAL_K64F.cpp Show annotated file Show diff for this revision Revisions of this file
Device/MODSERIAL_K64F.h Show annotated file Show diff for this revision Revisions of this file
Device/MODSERIAL_KL05Z.cpp Show annotated file Show diff for this revision Revisions of this file
Device/MODSERIAL_KL05Z.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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Device/MODSERIAL_K64F.cpp	Tue Apr 29 23:09:48 2014 +0000
@@ -0,0 +1,21 @@
+#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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Device/MODSERIAL_K64F.h	Tue Apr 29 23:09:48 2014 +0000
@@ -0,0 +1,20 @@
+#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_KL05Z.cpp	Tue Apr 29 23:09:48 2014 +0000
@@ -0,0 +1,16 @@
+#ifdef TARGET_KL05Z
+#include "MODSERIAL.h"
+
+void MODSERIAL::setBase(void ) {
+    _base = UART0;
+    _IRQ  = UART0_IRQn;
+}
+
+void MODSERIAL::initDevice(void) {};
+
+bool MODSERIAL::txIsBusy( void ) 
+{ 
+    return ( ((UARTLP_Type*)_base)->S1 & ( 1UL << 6 ) == 0 ) ? true : false; 
+} 
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Device/MODSERIAL_KL05Z.h	Tue Apr 29 23:09:48 2014 +0000
@@ -0,0 +1,20 @@
+#if defined(TARGET_KL05Z)
+
+#define MODSERIAL_IRQ_REG ((UARTLP_Type*)_base)->C2
+#define DISABLE_TX_IRQ MODSERIAL_IRQ_REG &= ~(1UL << UARTLP_C2_TIE_SHIFT)
+#define DISABLE_RX_IRQ MODSERIAL_IRQ_REG &= ~(1UL << UARTLP_C2_RIE_SHIFT)
+#define ENABLE_TX_IRQ MODSERIAL_IRQ_REG |= (1UL << UARTLP_C2_TIE_SHIFT)
+#define ENABLE_RX_IRQ MODSERIAL_IRQ_REG |= (1UL << UARTLP_C2_RIE_SHIFT)
+
+#define MODSERIAL_READ_REG ((UARTLP_Type*)_base)->D
+#define MODSERIAL_WRITE_REG ((UARTLP_Type*)_base)->D
+#define MODSERIAL_READABLE ((((UARTLP_Type*)_base)->S1 & (1UL<<5)) != 0)
+#define MODSERIAL_WRITABLE ((((UARTLP_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 << UARTLP_C2_RIE_SHIFT)) != 0 )
+#define TX_IRQ_ENABLED ((MODSERIAL_IRQ_REG & (1UL << UARTLP_C2_TIE_SHIFT)) != 0 )
+
+#endif
\ No newline at end of file
--- a/MACROS.h	Sat Oct 12 09:53:06 2013 +0000
+++ b/MACROS.h	Tue Apr 29 23:09:48 2014 +0000
@@ -26,6 +26,8 @@
 #include "MODSERIAL_LPC1768.h"
 #include "MODSERIAL_LPC11U24.h"
 #include "MODSERIAL_KL25Z.h"
+#include "MODSERIAL_KL05Z.h"
+#include "MODSERIAL_K64F.h"
 
 #define MODSERIAL_TX_BUFFER_EMPTY (buffer_count[TxIrq]==0)
 #define MODSERIAL_RX_BUFFER_EMPTY (buffer_count[RxIrq]==0)