added prescaler for 16 bit pwm in LPC1347 target

Fork of mbed-dev by mbed official

Revision:
50:a417edff4437
Parent:
0:9b334a45a8ff
Child:
144:ef7eb2e8f9f7
diff -r 57ac6e3cdfd3 -r a417edff4437 targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/emlib/src/em_dac.c
--- a/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/emlib/src/em_dac.c	Wed Jan 13 12:45:11 2016 +0000
+++ b/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/emlib/src/em_dac.c	Fri Jan 15 07:45:16 2016 +0000
@@ -1,10 +1,10 @@
 /***************************************************************************//**
  * @file em_dac.c
  * @brief Digital to Analog Coversion (DAC) Peripheral API
- * @version 3.20.12
+ * @version 4.2.1
  *******************************************************************************
  * @section License
- * <b>(C) Copyright 2014 Silicon Labs, http://www.silabs.com</b>
+ * <b>(C) Copyright 2015 Silicon Labs, http://www.silabs.com</b>
  *******************************************************************************
  *
  * Permission is granted to anyone to use this software for any purpose,
@@ -30,12 +30,11 @@
  *
  ******************************************************************************/
 
-
 #include "em_dac.h"
 #if defined(DAC_COUNT) && (DAC_COUNT > 0)
 #include "em_cmu.h"
 #include "em_assert.h"
-#include "em_bitband.h"
+#include "em_bus.h"
 
 /***************************************************************************//**
  * @addtogroup EM_Library
@@ -95,7 +94,7 @@
     reg = &(dac->CH1CTRL);
   }
 
-  BITBAND_Peripheral(reg, _DAC_CH0CTRL_EN_SHIFT, (unsigned int)enable);
+  BUS_RegBitWrite(reg, _DAC_CH0CTRL_EN_SHIFT, enable);
 }
 
 
@@ -123,30 +122,31 @@
   EFM_ASSERT(DAC_REF_VALID(dac));
 
   /* Make sure both channels are disabled. */
-  BITBAND_Peripheral(&(dac->CH0CTRL), _DAC_CH0CTRL_EN_SHIFT, 0);
-  BITBAND_Peripheral(&(dac->CH1CTRL), _DAC_CH0CTRL_EN_SHIFT, 0);
+  BUS_RegBitWrite(&(dac->CH0CTRL), _DAC_CH0CTRL_EN_SHIFT, 0);
+  BUS_RegBitWrite(&(dac->CH1CTRL), _DAC_CH0CTRL_EN_SHIFT, 0);
 
   /* Load proper calibration data depending on selected reference */
   switch (init->reference)
   {
-  case dacRef2V5:
-    dac->CAL = DEVINFO->DAC0CAL1;
-    break;
+    case dacRef2V5:
+      dac->CAL = DEVINFO->DAC0CAL1;
+      break;
 
-  case dacRefVDD:
-    dac->CAL = DEVINFO->DAC0CAL2;
-    break;
+    case dacRefVDD:
+      dac->CAL = DEVINFO->DAC0CAL2;
+      break;
 
-  default: /* 1.25V */
-    dac->CAL = DEVINFO->DAC0CAL0;
-    break;
+    default: /* 1.25V */
+      dac->CAL = DEVINFO->DAC0CAL0;
+      break;
   }
 
-  tmp = ((uint32_t)(init->refresh) << _DAC_CTRL_REFRSEL_SHIFT) |
-        (((uint32_t)(init->prescale) << _DAC_CTRL_PRESC_SHIFT) & _DAC_CTRL_PRESC_MASK) |
-        ((uint32_t)(init->reference) << _DAC_CTRL_REFSEL_SHIFT) |
-        ((uint32_t)(init->outMode) << _DAC_CTRL_OUTMODE_SHIFT) |
-        ((uint32_t)(init->convMode) << _DAC_CTRL_CONVMODE_SHIFT);
+  tmp = ((uint32_t)(init->refresh)     << _DAC_CTRL_REFRSEL_SHIFT)
+        | (((uint32_t)(init->prescale) << _DAC_CTRL_PRESC_SHIFT)
+           & _DAC_CTRL_PRESC_MASK)
+        | ((uint32_t)(init->reference) << _DAC_CTRL_REFSEL_SHIFT)
+        | ((uint32_t)(init->outMode)   << _DAC_CTRL_OUTMODE_SHIFT)
+        | ((uint32_t)(init->convMode)  << _DAC_CTRL_CONVMODE_SHIFT);
 
   if (init->ch0ResetPre)
   {
@@ -245,15 +245,15 @@
 {
   switch(channel)
   {
-  case 0:
-    DAC_Channel0OutputSet(dac, value);
-    break;
-  case 1:
-    DAC_Channel1OutputSet(dac, value);
-    break;
-  default:
-    EFM_ASSERT(0);
-    break;
+    case 0:
+      DAC_Channel0OutputSet(dac, value);
+      break;
+    case 1:
+      DAC_Channel1OutputSet(dac, value);
+      break;
+    default:
+      EFM_ASSERT(0);
+      break;
   }
 }
 
@@ -311,7 +311,7 @@
     ret = _DAC_CTRL_PRESC_MASK >> _DAC_CTRL_PRESC_SHIFT;
   }
 
-  return((uint8_t)ret);
+  return (uint8_t)ret;
 }