init commit
This commit is contained in:
167
Utilities/lpm/tiny_lpm/stm32_lpm.h
Normal file
167
Utilities/lpm/tiny_lpm/stm32_lpm.h
Normal file
@@ -0,0 +1,167 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32_lpm.h
|
||||
* @author MCD Application Team
|
||||
* @brief Header for stm32_lpm.c module
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef STM32_TINY_LPM_H
|
||||
#define STM32_TINY_LPM_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "stdint.h"
|
||||
|
||||
/** @defgroup TINY_LPM TINY LPM
|
||||
* @{
|
||||
*/
|
||||
|
||||
/* Exported typedef ---------------------------------------------------------*/
|
||||
/** @defgroup TINY_LPM_Exported_typedef TINY LPM exported typedef
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief type definition to represent the bit mask of an LPM mode
|
||||
*/
|
||||
typedef uint32_t UTIL_LPM_bm_t;
|
||||
|
||||
/**
|
||||
* @brief type definition to represent value of an LPM mode
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
UTIL_LPM_ENABLE=0,
|
||||
UTIL_LPM_DISABLE,
|
||||
} UTIL_LPM_State_t;
|
||||
|
||||
/**
|
||||
* @brief type definition to represent the different type of LPM mode
|
||||
*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
UTIL_LPM_SLEEPMODE,
|
||||
UTIL_LPM_STOPMODE,
|
||||
UTIL_LPM_OFFMODE,
|
||||
} UTIL_LPM_Mode_t;
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup TINY_LPM_Exported_struct TINY LPM exported struct
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief LPM driver definition
|
||||
*/
|
||||
struct UTIL_LPM_Driver_s
|
||||
{
|
||||
void (*EnterSleepMode) ( void ); /*!<function to enter the sleep mode */
|
||||
void (*ExitSleepMode) ( void ); /*!<function to exit the sleep mode */
|
||||
void (*EnterStopMode) ( void ); /*!<function to enter the stop mode */
|
||||
void (*ExitStopMode) ( void ); /*!<function to exit the stop mode */
|
||||
void (*EnterOffMode) ( void ); /*!<function to enter the off mode */
|
||||
void (*ExitOffMode) ( void ); /*!<function to exit the off mode */
|
||||
};
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* External variables --------------------------------------------------------*/
|
||||
|
||||
/** @defgroup TINY_LPM_Exported_struct TINY LPM exported struct
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief LPM driver
|
||||
*
|
||||
* @note This structure is defined and initialized in the specific platform
|
||||
* power implementation
|
||||
*/
|
||||
extern const struct UTIL_LPM_Driver_s UTIL_PowerDriver;
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Exported macros -----------------------------------------------------------*/
|
||||
/* Exported functions ------------------------------------------------------- */
|
||||
|
||||
/** @defgroup TINY_LPM_Exported_function TINY LPM exported functions
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief This API Initializes the LPM resources.
|
||||
*/
|
||||
void UTIL_LPM_Init( void );
|
||||
|
||||
/**
|
||||
* @brief This API Un-Initializes the LPM resources.
|
||||
*/
|
||||
void UTIL_LPM_DeInit( void );
|
||||
|
||||
/**
|
||||
* @brief This API returns the Low Power Mode selected that will be applied when the system will enter low power mode
|
||||
* if there is no update between the time the mode is read with this API and the time the system enters
|
||||
* low power mode.
|
||||
* @retval the LPM mode based on @ref UTIL_LPM_Mode_t
|
||||
*/
|
||||
UTIL_LPM_Mode_t UTIL_LPM_GetMode( void );
|
||||
|
||||
/**
|
||||
* @brief This API notifies the low power manager if the specified user allows the Stop mode or not.
|
||||
* The default mode selection for all users is Stop Mode enabled
|
||||
* @param lpm_id_bm: identifier of the user ( 1 bit per user )
|
||||
* @param state: Specify whether StopMode is allowed or not by this user
|
||||
*/
|
||||
void UTIL_LPM_SetStopMode( UTIL_LPM_bm_t lpm_id_bm, UTIL_LPM_State_t state );
|
||||
|
||||
/**
|
||||
* @brief This API notifies the low power manager if the specified user allows the Off mode or not.
|
||||
* The default mode selection for all users is Off mode enabled
|
||||
* @param lpm_id_bm: identifier of the user ( 1 bit per user )
|
||||
* @param state: Specify whether OffMode is allowed or not by this user
|
||||
*/
|
||||
void UTIL_LPM_SetOffMode( UTIL_LPM_bm_t lpm_id_bm, UTIL_LPM_State_t state );
|
||||
|
||||
/**
|
||||
* @brief This API is called by the low power manager in a critical section (PRIMASK bit set) to allow the
|
||||
* application to implement dedicated code before entering Low Power Mode
|
||||
*/
|
||||
void UTIL_LPM_EnterLowPower( void );
|
||||
|
||||
/**
|
||||
*@}
|
||||
*/
|
||||
|
||||
/**
|
||||
*@}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* STM32_TINY_LPM_H */
|
||||
|
||||
Reference in New Issue
Block a user