mirror of https://github.com/ARMmbed/mbed-os.git
[STM32L0xx] Sleep API factorization
In order to enable sleep API factorization, HAL_Suspend/ResumeTick functions have been implemented in hal_tick.c for each platform.pull/2192/head
parent
8f6090d002
commit
34c37c8b94
|
@ -131,6 +131,21 @@ HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) {
|
||||||
return HAL_OK;
|
return HAL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HAL_SuspendTick(void)
|
||||||
|
{
|
||||||
|
TimMasterHandle.Instance = TIM_MST;
|
||||||
|
|
||||||
|
// Disable HAL tick and us_ticker update interrupts (used for 32 bit counter)
|
||||||
|
__HAL_TIM_DISABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
|
||||||
|
}
|
||||||
|
|
||||||
|
void HAL_ResumeTick(void)
|
||||||
|
{
|
||||||
|
TimMasterHandle.Instance = TIM_MST;
|
||||||
|
|
||||||
|
// Enable HAL tick and us_ticker update interrupts (used for 32 bit counter)
|
||||||
|
__HAL_TIM_ENABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -140,6 +140,21 @@ HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) {
|
||||||
return HAL_OK;
|
return HAL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HAL_SuspendTick(void)
|
||||||
|
{
|
||||||
|
TimMasterHandle.Instance = TIM_MST;
|
||||||
|
|
||||||
|
// Disable HAL tick and us_ticker update interrupts (used for 32 bit counter)
|
||||||
|
__HAL_TIM_DISABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
|
||||||
|
}
|
||||||
|
|
||||||
|
void HAL_ResumeTick(void)
|
||||||
|
{
|
||||||
|
TimMasterHandle.Instance = TIM_MST;
|
||||||
|
|
||||||
|
// Enable HAL tick and us_ticker update interrupts (used for 32 bit counter)
|
||||||
|
__HAL_TIM_ENABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -131,6 +131,21 @@ HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) {
|
||||||
return HAL_OK;
|
return HAL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HAL_SuspendTick(void)
|
||||||
|
{
|
||||||
|
TimMasterHandle.Instance = TIM_MST;
|
||||||
|
|
||||||
|
// Disable HAL tick and us_ticker update interrupts (used for 32 bit counter)
|
||||||
|
__HAL_TIM_DISABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
|
||||||
|
}
|
||||||
|
|
||||||
|
void HAL_ResumeTick(void)
|
||||||
|
{
|
||||||
|
TimMasterHandle.Instance = TIM_MST;
|
||||||
|
|
||||||
|
// Enable HAL tick and us_ticker update interrupts (used for 32 bit counter)
|
||||||
|
__HAL_TIM_ENABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -131,6 +131,21 @@ HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) {
|
||||||
return HAL_OK;
|
return HAL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HAL_SuspendTick(void)
|
||||||
|
{
|
||||||
|
TimMasterHandle.Instance = TIM_MST;
|
||||||
|
|
||||||
|
// Disable HAL tick and us_ticker update interrupts (used for 32 bit counter)
|
||||||
|
__HAL_TIM_DISABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
|
||||||
|
}
|
||||||
|
|
||||||
|
void HAL_ResumeTick(void)
|
||||||
|
{
|
||||||
|
TimMasterHandle.Instance = TIM_MST;
|
||||||
|
|
||||||
|
// Enable HAL tick and us_ticker update interrupts (used for 32 bit counter)
|
||||||
|
__HAL_TIM_ENABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -131,6 +131,21 @@ HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) {
|
||||||
return HAL_OK;
|
return HAL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HAL_SuspendTick(void)
|
||||||
|
{
|
||||||
|
TimMasterHandle.Instance = TIM_MST;
|
||||||
|
|
||||||
|
// Disable HAL tick and us_ticker update interrupts (used for 32 bit counter)
|
||||||
|
__HAL_TIM_DISABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
|
||||||
|
}
|
||||||
|
|
||||||
|
void HAL_ResumeTick(void)
|
||||||
|
{
|
||||||
|
TimMasterHandle.Instance = TIM_MST;
|
||||||
|
|
||||||
|
// Enable HAL tick and us_ticker update interrupts (used for 32 bit counter)
|
||||||
|
__HAL_TIM_ENABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -33,20 +33,14 @@
|
||||||
|
|
||||||
#include "cmsis.h"
|
#include "cmsis.h"
|
||||||
|
|
||||||
static TIM_HandleTypeDef TimMasterHandle;
|
|
||||||
|
|
||||||
void sleep(void)
|
|
||||||
{
|
|
||||||
TimMasterHandle.Instance = TIM21;
|
|
||||||
|
|
||||||
// Disable HAL tick interrupt
|
|
||||||
__HAL_TIM_DISABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
|
|
||||||
|
|
||||||
|
void sleep(void) {
|
||||||
|
// Stop HAL systick
|
||||||
|
HAL_SuspendTick();
|
||||||
// Request to enter SLEEP mode
|
// Request to enter SLEEP mode
|
||||||
HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);
|
HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);
|
||||||
|
// Restart HAL systick
|
||||||
// Enable HAL tick interrupt
|
HAL_ResumeTick();
|
||||||
__HAL_TIM_ENABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void deepsleep(void)
|
void deepsleep(void)
|
||||||
|
|
Loading…
Reference in New Issue