diff --git a/src/main.c b/src/main.c --- a/src/main.c +++ b/src/main.c @@ -99,6 +99,10 @@ int main(void) { blink_rate = BLINK_SLOW; HAL_PWR_EnterSLEEPMode(0, PWR_SLEEPENTRY_WFI); + HAL_PWR_EnterSLEEPMode(0, PWR_SLEEPENTRY_WFI); + HAL_PWR_EnterSLEEPMode(0, PWR_SLEEPENTRY_WFI); + HAL_PWR_EnterSLEEPMode(0, PWR_SLEEPENTRY_WFI); + // Wait for RTC wakeup interrupt //wfi(); //enter_sleep(); @@ -112,6 +116,11 @@ int main(void) case SYSTEM_GPSACQ: { blink_rate = BLINK_FAST; + HAL_PWR_EnterSLEEPMode(0, PWR_SLEEPENTRY_WFI); + HAL_PWR_EnterSLEEPMode(0, PWR_SLEEPENTRY_WFI); + HAL_PWR_EnterSLEEPMode(0, PWR_SLEEPENTRY_WFI); + HAL_PWR_EnterSLEEPMode(0, PWR_SLEEPENTRY_WFI); + if(!gps_ison()) { @@ -176,6 +185,13 @@ int main(void) state = SYSTEM_IDLE; } } + else + { + HAL_PWR_EnterSLEEPMode(0, PWR_SLEEPENTRY_WFI); + HAL_PWR_EnterSLEEPMode(0, PWR_SLEEPENTRY_WFI); + HAL_PWR_EnterSLEEPMode(0, PWR_SLEEPENTRY_WFI); + HAL_PWR_EnterSLEEPMode(0, PWR_SLEEPENTRY_WFI); + } // Schedule next wakeup (maybe 2mins prior ot timeslot if no osc trim) // Next wakeup should enter SYSTEM_GPSACQ state... diff --git a/src/system.c b/src/system.c --- a/src/system.c +++ b/src/system.c @@ -44,7 +44,7 @@ void sysclk_init(void) RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; - RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV4; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);