t

Dependencies:   DM_FATFileSystem DM_HttpServer DM_USBHost EthernetInterface USBDevice mbed-rpc mbed-rtos

Fork of DMSupport by Embedded Artists

Revision:
31:d47cffcb0a3e
Parent:
4:6fdcdf7aff8d
--- a/meas.h	Mon Jan 26 15:24:15 2015 +0100
+++ b/meas.h	Tue Feb 17 10:41:48 2015 +0100
@@ -28,6 +28,10 @@
  * Typedefs and defines
  *****************************************************************************/
 
+// Enable extra measuring pins, at the expense of peripheral access.
+// For example MEAS pins 5-9 will prevent use of UART4/SPI2 and some timers.
+//#define EXTRA_PINS
+
 // Internal macros, don't use directly
 #if defined(DM_BOARD_ENABLE_MEASSURING_PINS)
   #define _INTERNAL_SET_MEAS_PIN(__port, __pin)    ((LPC_GPIO ## __port)->SET = (1UL << (__pin)))
@@ -53,6 +57,43 @@
 #define SET_MEAS_PIN_4()     _INTERNAL_SET_MEAS_PIN(1, 19)
 #define CLR_MEAS_PIN_4()     _INTERNAL_CLR_MEAS_PIN(1, 19)
 
+#ifdef EXTRA_PINS
+    // Manipulates measurement pin 5 which is GPIO5[0], available on J10-15
+    #define SET_MEAS_PIN_5()     _INTERNAL_SET_MEAS_PIN(5, 0)
+    #define CLR_MEAS_PIN_5()     _INTERNAL_CLR_MEAS_PIN(5, 0)
+    
+    // Manipulates measurement pin 6 which is GPIO5[1], available on J10-16
+    #define SET_MEAS_PIN_6()     _INTERNAL_SET_MEAS_PIN(5, 1)
+    #define CLR_MEAS_PIN_6()     _INTERNAL_CLR_MEAS_PIN(5, 1)
+    
+    // Manipulates measurement pin 7 which is GPIO5[2], available on J10-17
+    #define SET_MEAS_PIN_7()     _INTERNAL_SET_MEAS_PIN(5, 2)
+    #define CLR_MEAS_PIN_7()     _INTERNAL_CLR_MEAS_PIN(5, 2)
+    
+    // Manipulates measurement pin 8 which is GPIO5[3], available on J10-18
+    #define SET_MEAS_PIN_8()     _INTERNAL_SET_MEAS_PIN(5, 3)
+    #define CLR_MEAS_PIN_8()     _INTERNAL_CLR_MEAS_PIN(5, 3)
+    
+    // Manipulates measurement pin 9 which is GPIO5[4], available on J10-19
+    #define SET_MEAS_PIN_9()     _INTERNAL_SET_MEAS_PIN(5, 4)
+    #define CLR_MEAS_PIN_9()     _INTERNAL_CLR_MEAS_PIN(5, 4)
+    
+    #define _INTERNAL_EXTRA_INIT_MEAS() do {\
+        LPC_IOCON->P5_0 &= ~0x7; \
+        LPC_IOCON->P5_1 &= ~0x7; \
+        LPC_IOCON->P5_2 &= ~0x7; \
+        LPC_IOCON->P5_3 &= ~0x7; \
+        LPC_IOCON->P5_4 &= ~0x7; \
+        LPC_GPIO5->DIR |= (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4); \
+        CLR_MEAS_PIN_5(); \
+        CLR_MEAS_PIN_6(); \
+        CLR_MEAS_PIN_7(); \
+        CLR_MEAS_PIN_8(); \
+        CLR_MEAS_PIN_9(); \
+      } while(0)
+#else
+    #define _INTERNAL_EXTRA_INIT_MEAS() do {} while(false)
+#endif
 
 #if defined(DM_BOARD_ENABLE_MEASSURING_PINS)
   #define _INTERNAL_INIT_MEAS() do {\
@@ -65,6 +106,7 @@
       CLR_MEAS_PIN_2(); \
       CLR_MEAS_PIN_3(); \
       CLR_MEAS_PIN_4(); \
+      _INTERNAL_EXTRA_INIT_MEAS(); \
     } while(0)
 #else
   #define _INTERNAL_INIT_MEAS()                    do {} while(0)