added prescaler for 16 bit pwm in LPC1347 target

Fork of mbed-dev by mbed official

Revision:
50:a417edff4437
Parent:
0:9b334a45a8ff
Child:
54:2a2065e67ef6
diff -r 57ac6e3cdfd3 -r a417edff4437 targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/clocking.h
--- a/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/clocking.h	Wed Jan 13 12:45:11 2016 +0000
+++ b/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/clocking.h	Fri Jan 15 07:45:16 2016 +0000
@@ -32,37 +32,45 @@
 #include "device_peripherals.h"
 
 #if( CORE_CLOCK_SOURCE == HFXO)
-#define REFERENCE_FREQUENCY HFXO_FREQUENCY
+# define REFERENCE_FREQUENCY HFXO_FREQUENCY
 #elif( CORE_CLOCK_SOURCE == HFRCO)
-#if( HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_1MHZ)
-#define REFERENCE_FREQUENCY 1000000
-#elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_7MHZ)
-#define REFERENCE_FREQUENCY 7000000
-#elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_11MHZ)
-#define REFERENCE_FREQUENCY 7000000
-#elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_14MHZ)
-#define REFERENCE_FREQUENCY 14000000
-#elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_21MHZ)
-#define REFERENCE_FREQUENCY 21000000
-#elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_28MHZ)
-#define REFERENCE_FREQUENCY 28000000
-#else
-#define REFERENCE_FREQUENCY 14000000
-#endif
+
+# if defined _CMU_HFRCOCTRL_BAND_MASK
+#  if( HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_1MHZ)
+#   define REFERENCE_FREQUENCY 1000000
+#  elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_7MHZ)
+#   define REFERENCE_FREQUENCY 7000000
+#  elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_11MHZ)
+#   define REFERENCE_FREQUENCY 7000000
+#  elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_14MHZ)
+#   define REFERENCE_FREQUENCY 14000000
+#  elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_21MHZ)
+#   define REFERENCE_FREQUENCY 21000000
+#  elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_28MHZ)
+#   define REFERENCE_FREQUENCY 28000000
+#  else
+#   define REFERENCE_FREQUENCY 14000000
+#  endif
+# elif defined _CMU_HFRCOCTRL_FREQRANGE_MASK
+#  define REFERENCE_FREQUENCY HFRCO_FREQUENCY
+# else
+#  error "HFRCO frequency not defined"
+# endif
 #endif
 
 #if ( LOW_ENERGY_CLOCK_SOURCE == LFXO )
-#define LEUART_USING_LFXO
-#if ( defined(CMU_CTRL_HFLE) && (REFERENCE_FREQUENCY > 24000000) )
-#define LEUART_HF_REF_FREQ (REFERENCE_FREQUENCY / 4)
+# define LEUART_USING_LFXO
+# if ( (defined(CMU_CTRL_HFLE) || defined(CMU_CTRL_WSHFLE) ) && (REFERENCE_FREQUENCY > 24000000) )
+#  define LEUART_HF_REF_FREQ (REFERENCE_FREQUENCY / 4)
+# else
+#  define LEUART_HF_REF_FREQ (REFERENCE_FREQUENCY / 2)
+# endif
+# define LEUART_LF_REF_FREQ LFXO_FREQUENCY
 #else
-#define LEUART_HF_REF_FREQ (REFERENCE_FREQUENCY / 2)
+# if ( (defined(CMU_CTRL_HFLE) || defined(CMU_CTRL_WSHFLE) ) && (REFERENCE_FREQUENCY > 24000000) )
+#  define LEUART_REF_FREQ (REFERENCE_FREQUENCY / 4)
+# else
+#  define LEUART_REF_FREQ (REFERENCE_FREQUENCY / 2)
+# endif
 #endif
-#define LEUART_LF_REF_FREQ LFXO_FREQUENCY
-#else
-#if ( defined(CMU_CTRL_HFLE) && (REFERENCE_FREQUENCY > 24000000) )
-#define LEUART_REF_FREQ (REFERENCE_FREQUENCY / 4)
-#else
-#define LEUART_REF_FREQ (REFERENCE_FREQUENCY / 2)
-#endif
-#endif
+