fix LPC812 PWM

Dependents:   IR_LED_Send

Fork of mbed-dev by mbed official

Files at this revision

API Documentation at this revision

Comitter:
mbed_official
Date:
Tue Mar 01 07:15:10 2016 +0000
Parent:
77:78ca4485fc41
Child:
79:7f02dc905b68
Commit message:
Synchronized with git revision 2b8c9ef4fba5ff935a3e4ee7ade25262b8f0d0b3

Full URL: https://github.com/mbedmicro/mbed/commit/2b8c9ef4fba5ff935a3e4ee7ade25262b8f0d0b3/

Adding NOT_SUPPORTED errors to tests

Changed in this revision

targets/hal/TARGET_STM/TARGET_STM32F7/rtc_api.c Show annotated file Show diff for this revision Revisions of this file
--- a/targets/hal/TARGET_STM/TARGET_STM32F7/rtc_api.c	Mon Feb 29 11:45:10 2016 +0000
+++ b/targets/hal/TARGET_STM/TARGET_STM32F7/rtc_api.c	Tue Mar 01 07:15:10 2016 +0000
@@ -40,59 +40,58 @@
     RCC_OscInitTypeDef RCC_OscInitStruct;
     uint32_t rtc_freq = 0;
 
-        RtcHandle.Instance = RTC;
+    RtcHandle.Instance = RTC;
+
+    // Enable Power clock
+    __PWR_CLK_ENABLE();
 
-        // Enable Power clock
-        __PWR_CLK_ENABLE();
+    // Enable access to Backup domain
+    HAL_PWR_EnableBkUpAccess();
+
+    // Reset Backup domain
+    __HAL_RCC_BACKUPRESET_FORCE();
+    __HAL_RCC_BACKUPRESET_RELEASE();
 
-        // Enable access to Backup domain
-        HAL_PWR_EnableBkUpAccess();
-
-        // Reset Backup domain
-        __HAL_RCC_BACKUPRESET_FORCE();
-        __HAL_RCC_BACKUPRESET_RELEASE();
-
-        // Enable LSE Oscillator
-        RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
+    // Enable LSE Oscillator
+    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
+    RCC_OscInitStruct.PLL.PLLState   = RCC_PLL_NONE; // Mandatory, otherwise the PLL is reconfigured!
+    RCC_OscInitStruct.LSEState       = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
+    if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) {
+        // Connect LSE to RTC
+        __HAL_RCC_RTC_CLKPRESCALER(RCC_RTCCLKSOURCE_LSE);
+        __HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSE);
+        rtc_freq = LSE_VALUE;
+    } else {
+        // Enable LSI clock
+        RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE;
         RCC_OscInitStruct.PLL.PLLState   = RCC_PLL_NONE; // Mandatory, otherwise the PLL is reconfigured!
-        RCC_OscInitStruct.LSEState       = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
-        if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) {
-            // Connect LSE to RTC
-            __HAL_RCC_RTC_CLKPRESCALER(RCC_RTCCLKSOURCE_LSE);
-            __HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSE);
-            rtc_freq = LSE_VALUE;
-        } else {
-            // Enable LSI clock
-            RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE;
-            RCC_OscInitStruct.PLL.PLLState   = RCC_PLL_NONE; // Mandatory, otherwise the PLL is reconfigured!
-            RCC_OscInitStruct.LSEState       = RCC_LSE_OFF;
-            RCC_OscInitStruct.LSIState       = RCC_LSI_ON;
-            if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
-                error("RTC error: LSI clock initialization failed.");
-            }
-            // Connect LSI to RTC
-            __HAL_RCC_RTC_CLKPRESCALER(RCC_RTCCLKSOURCE_LSI);
-            __HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSI);
-            // [TODO] This value is LSI typical value. To be measured precisely using a timer input capture
-            rtc_freq = LSI_VALUE;
+        RCC_OscInitStruct.LSEState       = RCC_LSE_OFF;
+        RCC_OscInitStruct.LSIState       = RCC_LSI_ON;
+        if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
+            error("RTC error: LSI clock initialization failed.");
         }
-
-    if((RTC->ISR & RTC_ISR_INITS) ==  RTC_ISR_INITS) {     // RTC initialization and status register (RTC_ISR), cold start (with no backup domain power) RTC reset value
+        // Connect LSI to RTC
+        __HAL_RCC_RTC_CLKPRESCALER(RCC_RTCCLKSOURCE_LSI);
+        __HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSI);
+        // [TODO] This value is LSI typical value. To be measured precisely using a timer input capture
+        rtc_freq = LSI_VALUE;
+    }
 
-        // Enable RTC
-        __HAL_RCC_RTC_ENABLE();
+    // Check if RTC is already initialized
+    if ((RTC->ISR & RTC_ISR_INITS) ==  RTC_ISR_INITS) return;
 
-        RtcHandle.Init.HourFormat     = RTC_HOURFORMAT_24;
-        RtcHandle.Init.AsynchPrediv   = 127;
-        RtcHandle.Init.SynchPrediv    = (rtc_freq / 128) - 1;
-        RtcHandle.Init.OutPut         = RTC_OUTPUT_DISABLE;
-        RtcHandle.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
-        RtcHandle.Init.OutPutType     = RTC_OUTPUT_TYPE_OPENDRAIN;
+    // Enable RTC
+    __HAL_RCC_RTC_ENABLE();
 
-        if (HAL_RTC_Init(&RtcHandle) != HAL_OK) {
-            error("RTC error: RTC initialization failed.");
-        }
+    RtcHandle.Init.HourFormat     = RTC_HOURFORMAT_24;
+    RtcHandle.Init.AsynchPrediv   = 127;
+    RtcHandle.Init.SynchPrediv    = (rtc_freq / 128) - 1;
+    RtcHandle.Init.OutPut         = RTC_OUTPUT_DISABLE;
+    RtcHandle.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
+    RtcHandle.Init.OutPutType     = RTC_OUTPUT_TYPE_OPENDRAIN;
 
+    if (HAL_RTC_Init(&RtcHandle) != HAL_OK) {
+        error("RTC error: RTC initialization failed.");
     }
 }