diff --git a/Application/BSP/BSP_POWER.c b/Application/BSP/BSP_POWER.c new file mode 100644 index 0000000..26773ae --- /dev/null +++ b/Application/BSP/BSP_POWER.c @@ -0,0 +1,19 @@ + + +#include "BSP_POWER.h" +#include "lptim.h" +#include "ulog.h" + +#define LPTIM_CLK 500 // Hz +#define SLEEP_TIME 10 // seconds to wait + +void BSP_POWER_Init() { + uint16_t counter = LPTIM_CLK * SLEEP_TIME; + HAL_LPTIM_Counter_Start_IT(&hlptim4, counter); +} + + +void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim) { + + +} \ No newline at end of file diff --git a/Application/BSP/BSP_POWER.h b/Application/BSP/BSP_POWER.h index b3d1885..ff34a81 100644 --- a/Application/BSP/BSP_POWER.h +++ b/Application/BSP/BSP_POWER.h @@ -1,4 +1,9 @@ +#pragma once // Driver for standby and sleep managment // Timer for automatic standby // Wakeup Pin Setting -// also shutdown procedure \ No newline at end of file +// also shutdown procedure + +void BSP_POWER_Init(); + + diff --git a/Application/BSP/CMakeLists.txt b/Application/BSP/CMakeLists.txt index 14ee8b5..8b75cb2 100644 --- a/Application/BSP/CMakeLists.txt +++ b/Application/BSP/CMakeLists.txt @@ -2,7 +2,8 @@ add_library(BSP STATIC BSP_EE24.c BSP_INA.c +BSP_POWER.c ) target_include_directories(BSP PUBLIC ./) -target_link_libraries(BSP PRIVATE EE24 INA219) +target_link_libraries(BSP PRIVATE EE24 INA219 ulog) diff --git a/CLS_Master.ioc b/CLS_Master.ioc index 19f3645..fd53cad 100644 --- a/CLS_Master.ioc +++ b/CLS_Master.ioc @@ -171,7 +171,7 @@ I2C2.I2C_Speed_Mode=I2C_Standard I2C2.IPParameters=Timing,I2C_Speed_Mode,Analog_Filter,I2C_Rise_Time,I2C_Fall_Time I2C2.Timing=0x00D0D8FF KeepUserPlacement=false -LPTIM4.ClockPrescaler=LPTIM_PRESCALER_DIV2 +LPTIM4.ClockPrescaler=LPTIM_PRESCALER_DIV64 LPTIM4.IPParameters=ClockPrescaler LPUART1.BaudRate=2000000 LPUART1.IPParameters=BaudRate diff --git a/Core/Src/freertos.c b/Core/Src/freertos.c index b78e7cc..abe87bb 100644 --- a/Core/Src/freertos.c +++ b/Core/Src/freertos.c @@ -34,6 +34,7 @@ #include "tim.h" #include "BSP_EE24.h" #include "BSP_INA.h" +#include "BSP_POWER.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -181,6 +182,8 @@ void StartDefaultTask(void *argument) BSP_INA_Init(); + BSP_POWER_Init(); + char INA_LOG[72]; /* Infinite loop */ diff --git a/Core/Src/lptim.c b/Core/Src/lptim.c index a39849f..99787d4 100644 --- a/Core/Src/lptim.c +++ b/Core/Src/lptim.c @@ -39,7 +39,7 @@ void MX_LPTIM4_Init(void) /* USER CODE END LPTIM4_Init 1 */ hlptim4.Instance = LPTIM4; hlptim4.Init.Clock.Source = LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC; - hlptim4.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV2; + hlptim4.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV64; hlptim4.Init.Trigger.Source = LPTIM_TRIGSOURCE_SOFTWARE; hlptim4.Init.OutputPolarity = LPTIM_OUTPUTPOLARITY_HIGH; hlptim4.Init.UpdateMode = LPTIM_UPDATE_IMMEDIATE; diff --git a/cmake_generated/cmake_generated.cmake b/cmake_generated/cmake_generated.cmake index 560c6c3..c5480be 100644 --- a/cmake_generated/cmake_generated.cmake +++ b/cmake_generated/cmake_generated.cmake @@ -26,6 +26,7 @@ set(sources_SRCS ${sources_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/gpio.c ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/i2c.c ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/tim.c + ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/lptim.c ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/rng.c ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/rtc.c ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/sdmmc.c @@ -69,6 +70,7 @@ set(sources_SRCS ${sources_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sd.c ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sd_ex.c ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_lptim.c ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c