current_v/Drivers/FM33LG0xx_FL_Driver/Inc/fm33lg0xx_fl_svd.h

607 lines
21 KiB
C
Raw Normal View History

2025-12-31 08:21:43 +08:00
/**
*******************************************************************************************************
* @file fm33lg0xx_fl_svd.h
* @author FMSH Application Team
* @brief Head file of SVD FL Module
*******************************************************************************************************
* @attention
*
* Copyright (c) [2021] [Fudan Microelectronics]
* THIS SOFTWARE is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*
*******************************************************************************************************
*/
/* Define to prevent recursive inclusion---------------------------------------------------------------*/
#ifndef __FM33LG0XX_FL_SVD_H
#define __FM33LG0XX_FL_SVD_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes -------------------------------------------------------------------------------------------*/
#include "fm33lg0xx_fl_def.h"
/** @addtogroup FM33LG0XX_FL_Driver
* @{
*/
/** @defgroup SVD SVD
* @brief SVD FL driver
* @{
*/
/* Exported types -------------------------------------------------------------------------------------*/
/** @defgroup SVD_FL_ES_INIT SVD Exported Init structures
* @{
*/
/**
* @brief FL SVD Init Sturcture definition
*/
typedef struct
{
/* 参考电压 */
uint32_t referenceVoltage;
/* 报警阈值 */
uint32_t warningThreshold;
/* 数字滤波 */
uint32_t digitalFilter;
/* 工作模式 */
uint32_t workMode;
/* 间歇使能间隔 */
uint32_t enablePeriod;
/* SVS通道选择 */
uint32_t SVSChannel;
} FL_SVD_InitTypeDef;
/**
* @}
*/
/* Exported constants ---------------------------------------------------------------------------------*/
/** @defgroup SVD_FL_Exported_Constants SVD Exported Constants
* @{
*/
#define SVD_CFGR_LVL_Pos (4U)
#define SVD_CFGR_LVL_Msk (0xfU << SVD_CFGR_LVL_Pos)
#define SVD_CFGR_LVL SVD_CFGR_LVL_Msk
#define SVD_CFGR_DFEN_Pos (3U)
#define SVD_CFGR_DFEN_Msk (0x1U << SVD_CFGR_DFEN_Pos)
#define SVD_CFGR_DFEN SVD_CFGR_DFEN_Msk
#define SVD_CFGR_MOD_Pos (2U)
#define SVD_CFGR_MOD_Msk (0x1U << SVD_CFGR_MOD_Pos)
#define SVD_CFGR_MOD SVD_CFGR_MOD_Msk
#define SVD_CFGR_ITVL_Pos (0U)
#define SVD_CFGR_ITVL_Msk (0x3U << SVD_CFGR_ITVL_Pos)
#define SVD_CFGR_ITVL SVD_CFGR_ITVL_Msk
#define SVD_CR_SVS0EN_Pos (1U)
#define SVD_CR_SVS0EN_Msk (0x1U << SVD_CR_SVS0EN_Pos)
#define SVD_CR_SVS0EN SVD_CR_SVS0EN_Msk
#define SVD_CR_EN_Pos (0U)
#define SVD_CR_EN_Msk (0x1U << SVD_CR_EN_Pos)
#define SVD_CR_EN SVD_CR_EN_Msk
#define SVD_IER_PFIE_Pos (1U)
#define SVD_IER_PFIE_Msk (0x1U << SVD_IER_PFIE_Pos)
#define SVD_IER_PFIE SVD_IER_PFIE_Msk
#define SVD_IER_PRIE_Pos (0U)
#define SVD_IER_PRIE_Msk (0x1U << SVD_IER_PRIE_Pos)
#define SVD_IER_PRIE SVD_IER_PRIE_Msk
#define SVD_ISR_SVDO_Pos (8U)
#define SVD_ISR_SVDO_Msk (0x1U << SVD_ISR_SVDO_Pos)
#define SVD_ISR_SVDO SVD_ISR_SVDO_Msk
#define SVD_ISR_SVDR_Pos (7U)
#define SVD_ISR_SVDR_Msk (0x1U << SVD_ISR_SVDR_Pos)
#define SVD_ISR_SVDR SVD_ISR_SVDR_Msk
#define SVD_ISR_PFF_Pos (1U)
#define SVD_ISR_PFF_Msk (0x1U << SVD_ISR_PFF_Pos)
#define SVD_ISR_PFF SVD_ISR_PFF_Msk
#define SVD_ISR_PRF_Pos (0U)
#define SVD_ISR_PRF_Msk (0x1U << SVD_ISR_PRF_Pos)
#define SVD_ISR_PRF SVD_ISR_PRF_Msk
#define SVD_VSR_EN_Pos (0U)
#define SVD_VSR_EN_Msk (0x7U << SVD_VSR_EN_Pos)
#define SVD_VSR_EN SVD_VSR_EN_Msk
#define FL_SVD_REFERENCE_1P0V (0x1U << 2U)
#define FL_SVD_REFERENCE_0P95V (0x1U << 1U)
#define FL_SVD_REFERENCE_0P9V (0x1U << 0U)
#define FL_SVD_WARNING_THRESHOLD_GROUP0 (0x0U << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP1 (0x1U << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP2 (0x2U << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP3 (0x3U << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP4 (0x4U << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP5 (0x5U << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP6 (0x6U << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP7 (0x7U << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP8 (0x8U << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP9 (0x9U << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP10 (0xaU << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP11 (0xbU << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP12 (0xcU << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP13 (0xdU << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP14 (0xeU << SVD_CFGR_LVL_Pos)
#define FL_SVD_WARNING_THRESHOLD_GROUP15 (0xfU << SVD_CFGR_LVL_Pos)
#define FL_SVD_WORK_MODE_CONTINUOUS (0x0U << SVD_CFGR_MOD_Pos)
#define FL_SVD_WORK_MODE_PERIODIC (0x1U << SVD_CFGR_MOD_Pos)
#define FL_SVD_ENABLE_PERIOD_62P5MS (0x0U << SVD_CFGR_ITVL_Pos)
#define FL_SVD_ENABLE_PERIOD_256MS (0x1U << SVD_CFGR_ITVL_Pos)
#define FL_SVD_ENABLE_PERIOD_1000MS (0x2U << SVD_CFGR_ITVL_Pos)
#define FL_SVD_ENABLE_PERIOD_4000MS (0x3U << SVD_CFGR_ITVL_Pos)
#define FL_SVD_POWER_STATUS_FALLING (0x0U << SVD_ISR_SVDO_Pos)
#define FL_SVD_POWER_STATUS_RISING (0x1U << SVD_ISR_SVDO_Pos)
#define FL_SVD_LATCHED_POWER_STATUS_FALLING (0x0U << SVD_ISR_SVDR_Pos)
#define FL_SVD_LATCHED_POWER_STATUS_RISING (0x1U << SVD_ISR_SVDR_Pos)
/**
* @}
*/
/* Exported functions ---------------------------------------------------------------------------------*/
/** @defgroup SVD_FL_Exported_Functions SVD Exported Functions
* @{
*/
/**
* @brief Set SVD Threshold Warning Level
* @rmtoll CFGR LVL FL_SVD_SetWarningThreshold
* @param SVDx SVD instance
* @param level This parameter can be one of the following values:
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP0
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP1
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP2
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP3
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP4
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP5
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP6
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP7
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP8
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP9
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP10
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP11
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP12
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP13
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP14
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP15
* @retval None
*/
__STATIC_INLINE void FL_SVD_SetWarningThreshold(SVD_Type *SVDx, uint32_t level)
{
MODIFY_REG(SVDx->CFGR, SVD_CFGR_LVL_Msk, level);
}
/**
* @brief Get SVD Warning Threshold Level
* @rmtoll CFGR LVL FL_SVD_GetWarningThreshold
* @param SVDx SVD instance
* @retval Returned value can be one of the following values:
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP0
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP1
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP2
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP3
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP4
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP5
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP6
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP7
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP8
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP9
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP10
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP11
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP12
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP13
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP14
* @arg @ref FL_SVD_WARNING_THRESHOLD_GROUP15
*/
__STATIC_INLINE uint32_t FL_SVD_GetWarningThreshold(SVD_Type *SVDx)
{
return (uint32_t)(READ_BIT(SVDx->CFGR, SVD_CFGR_LVL_Msk));
}
/**
* @brief Enable SVD Digital Filter
* @rmtoll CFGR DFEN FL_SVD_EnableDigitalFilter
* @param SVDx SVD instance
* @retval None
*/
__STATIC_INLINE void FL_SVD_EnableDigitalFilter(SVD_Type *SVDx)
{
SET_BIT(SVDx->CFGR, SVD_CFGR_DFEN_Msk);
}
/**
* @brief Get SVD Digital Filter Enable Status
* @rmtoll CFGR DFEN FL_SVD_IsEnabledDigitalFilter
* @param SVDx SVD instance
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t FL_SVD_IsEnabledDigitalFilter(SVD_Type *SVDx)
{
return (uint32_t)(READ_BIT(SVDx->CFGR, SVD_CFGR_DFEN_Msk) == SVD_CFGR_DFEN_Msk);
}
/**
* @brief Disable SVD Digital Filter
* @rmtoll CFGR DFEN FL_SVD_DisableDigitalFilter
* @param SVDx SVD instance
* @retval None
*/
__STATIC_INLINE void FL_SVD_DisableDigitalFilter(SVD_Type *SVDx)
{
CLEAR_BIT(SVDx->CFGR, SVD_CFGR_DFEN_Msk);
}
/**
* @brief Set SVD Work Mode
* @rmtoll CFGR MOD FL_SVD_SetWorkMode
* @param SVDx SVD instance
* @param mode This parameter can be one of the following values:
* @arg @ref FL_SVD_WORK_MODE_CONTINUOUS
* @arg @ref FL_SVD_WORK_MODE_PERIODIC
* @retval None
*/
__STATIC_INLINE void FL_SVD_SetWorkMode(SVD_Type *SVDx, uint32_t mode)
{
MODIFY_REG(SVDx->CFGR, SVD_CFGR_MOD_Msk, mode);
}
/**
* @brief Get SVD Work Mode
* @rmtoll CFGR MOD FL_SVD_GetWorkMode
* @param SVDx SVD instance
* @retval Returned value can be one of the following values:
* @arg @ref FL_SVD_WORK_MODE_CONTINUOUS
* @arg @ref FL_SVD_WORK_MODE_PERIODIC
*/
__STATIC_INLINE uint32_t FL_SVD_GetWorkMode(SVD_Type *SVDx)
{
return (uint32_t)(READ_BIT(SVDx->CFGR, SVD_CFGR_MOD_Msk));
}
/**
* @brief Set SVD Enable Period
* @rmtoll CFGR ITVL FL_SVD_SetEnablePeriod
* @param SVDx SVD instance
* @param period This parameter can be one of the following values:
* @arg @ref FL_SVD_ENABLE_PERIOD_62P5MS
* @arg @ref FL_SVD_ENABLE_PERIOD_256MS
* @arg @ref FL_SVD_ENABLE_PERIOD_1000MS
* @arg @ref FL_SVD_ENABLE_PERIOD_4000MS
* @retval None
*/
__STATIC_INLINE void FL_SVD_SetEnablePeriod(SVD_Type *SVDx, uint32_t period)
{
MODIFY_REG(SVDx->CFGR, SVD_CFGR_ITVL_Msk, period);
}
/**
* @brief Get SVD Work Interval
* @rmtoll CFGR ITVL FL_SVD_GetEnablePeriod
* @param SVDx SVD instance
* @retval Returned value can be one of the following values:
* @arg @ref FL_SVD_ENABLE_PERIOD_62P5MS
* @arg @ref FL_SVD_ENABLE_PERIOD_256MS
* @arg @ref FL_SVD_ENABLE_PERIOD_1000MS
* @arg @ref FL_SVD_ENABLE_PERIOD_4000MS
*/
__STATIC_INLINE uint32_t FL_SVD_GetEnablePeriod(SVD_Type *SVDx)
{
return (uint32_t)(READ_BIT(SVDx->CFGR, SVD_CFGR_ITVL_Msk));
}
/**
* @brief Enable External SVS Channel
* @rmtoll CR SVS0EN FL_SVD_EnableSVSChannel
* @param SVDx SVD instance
* @retval None
*/
__STATIC_INLINE void FL_SVD_EnableSVSChannel(SVD_Type *SVDx)
{
SET_BIT(SVDx->CR, SVD_CR_SVS0EN_Msk);
}
/**
* @brief Get External SVS Channel Enable Status
* @rmtoll CR SVS0EN FL_SVD_IsEnabledSVSChannel
* @param SVDx SVD instance
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t FL_SVD_IsEnabledSVSChannel(SVD_Type *SVDx)
{
return (uint32_t)(READ_BIT(SVDx->CR, SVD_CR_SVS0EN_Msk) == SVD_CR_SVS0EN_Msk);
}
/**
* @brief Disable External SVS Channel
* @rmtoll CR SVS0EN FL_SVD_DisableSVSChannel
* @param SVDx SVD instance
* @retval None
*/
__STATIC_INLINE void FL_SVD_DisableSVSChannel(SVD_Type *SVDx)
{
CLEAR_BIT(SVDx->CR, SVD_CR_SVS0EN_Msk);
}
/**
* @brief Enable SVD
* @rmtoll CR EN FL_SVD_Enable
* @param SVDx SVD instance
* @retval None
*/
__STATIC_INLINE void FL_SVD_Enable(SVD_Type *SVDx)
{
SET_BIT(SVDx->CR, SVD_CR_EN_Msk);
}
/**
* @brief Get SVD Enable Status
* @rmtoll CR EN FL_SVD_IsEnabled
* @param SVDx SVD instance
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t FL_SVD_IsEnabled(SVD_Type *SVDx)
{
return (uint32_t)(READ_BIT(SVDx->CR, SVD_CR_EN_Msk) == SVD_CR_EN_Msk);
}
/**
* @brief Disable SVD
* @rmtoll CR EN FL_SVD_Disable
* @param SVDx SVD instance
* @retval None
*/
__STATIC_INLINE void FL_SVD_Disable(SVD_Type *SVDx)
{
CLEAR_BIT(SVDx->CR, SVD_CR_EN_Msk);
}
/**
* @brief Enable Power Fall Interrupt
* @rmtoll IER PFIE FL_SVD_EnableIT_PowerFall
* @param SVDx SVD instance
* @retval None
*/
__STATIC_INLINE void FL_SVD_EnableIT_PowerFall(SVD_Type *SVDx)
{
SET_BIT(SVDx->IER, SVD_IER_PFIE_Msk);
}
/**
* @brief Get Power Fall Interrupt Status
* @rmtoll IER PFIE FL_SVD_IsEnabledIT_PowerFall
* @param SVDx SVD instance
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t FL_SVD_IsEnabledIT_PowerFall(SVD_Type *SVDx)
{
return (uint32_t)(READ_BIT(SVDx->IER, SVD_IER_PFIE_Msk) == SVD_IER_PFIE_Msk);
}
/**
* @brief Disable Power Fall Interrupt
* @rmtoll IER PFIE FL_SVD_DisableIT_PowerFall
* @param SVDx SVD instance
* @retval None
*/
__STATIC_INLINE void FL_SVD_DisableIT_PowerFall(SVD_Type *SVDx)
{
CLEAR_BIT(SVDx->IER, SVD_IER_PFIE_Msk);
}
/**
* @brief Enable Power Rise Interrupt
* @rmtoll IER PRIE FL_SVD_EnableIT_PowerRise
* @param SVDx SVD instance
* @retval None
*/
__STATIC_INLINE void FL_SVD_EnableIT_PowerRise(SVD_Type *SVDx)
{
SET_BIT(SVDx->IER, SVD_IER_PRIE_Msk);
}
/**
* @brief Get Power Rise Interrupt Status
* @rmtoll IER PRIE FL_SVD_IsEnabledIT_PowerRise
* @param SVDx SVD instance
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t FL_SVD_IsEnabledIT_PowerRise(SVD_Type *SVDx)
{
return (uint32_t)(READ_BIT(SVDx->IER, SVD_IER_PRIE_Msk) == SVD_IER_PRIE_Msk);
}
/**
* @brief Disable Power Rise Interrupt
* @rmtoll IER PRIE FL_SVD_DisableIT_PowerRise
* @param SVDx SVD instance
* @retval None
*/
__STATIC_INLINE void FL_SVD_DisableIT_PowerRise(SVD_Type *SVDx)
{
CLEAR_BIT(SVDx->IER, SVD_IER_PRIE_Msk);
}
/**
* @brief Get SVD Current Power Status
* @rmtoll ISR SVDO FL_SVD_GetCurrentPowerStatus
* @param SVDx SVD instance
* @retval Returned value can be one of the following values:
* @arg @ref FL_SVD_POWER_STATUS_FALLING
* @arg @ref FL_SVD_POWER_STATUS_RISING
*/
__STATIC_INLINE uint32_t FL_SVD_GetCurrentPowerStatus(SVD_Type *SVDx)
{
return (uint32_t)(READ_BIT(SVDx->ISR, SVD_ISR_SVDO_Msk));
}
/**
* @brief Get SVD Latched Power Status
* @rmtoll ISR SVDR FL_SVD_GetLatchedPowerStatus
* @param SVDx SVD instance
* @retval Returned value can be one of the following values:
* @arg @ref FL_SVD_LATCHED_POWER_STATUS_FALLING
* @arg @ref FL_SVD_LATCHED_POWER_STATUS_RISING
*/
__STATIC_INLINE uint32_t FL_SVD_GetLatchedPowerStatus(SVD_Type *SVDx)
{
return (uint32_t)(READ_BIT(SVDx->ISR, SVD_ISR_SVDR_Msk));
}
/**
* @brief Get SVD Power Fall Flag
* @rmtoll ISR PFF FL_SVD_IsActiveFlag_PowerFall
* @param SVDx SVD instance
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t FL_SVD_IsActiveFlag_PowerFall(SVD_Type *SVDx)
{
return (uint32_t)(READ_BIT(SVDx->ISR, SVD_ISR_PFF_Msk) == (SVD_ISR_PFF_Msk));
}
/**
* @brief Clear SVD Power Fall Flag
* @rmtoll ISR PFF FL_SVD_ClearFlag_PowerFall
* @param SVDx SVD instance
* @retval None
*/
__STATIC_INLINE void FL_SVD_ClearFlag_PowerFall(SVD_Type *SVDx)
{
WRITE_REG(SVDx->ISR, SVD_ISR_PFF_Msk);
}
/**
* @brief Get SVD Power Rise Flag
* @rmtoll ISR PRF FL_SVD_IsActiveFlag_PowerRise
* @param SVDx SVD instance
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t FL_SVD_IsActiveFlag_PowerRise(SVD_Type *SVDx)
{
return (uint32_t)(READ_BIT(SVDx->ISR, SVD_ISR_PRF_Msk) == (SVD_ISR_PRF_Msk));
}
/**
* @brief Clear SVD Power Rise Flag
* @rmtoll ISR PRF FL_SVD_ClearFlag_PowerRise
* @param SVDx SVD instance
* @retval None
*/
__STATIC_INLINE void FL_SVD_ClearFlag_PowerRise(SVD_Type *SVDx)
{
WRITE_REG(SVDx->ISR, SVD_ISR_PRF_Msk);
}
/**
* @brief Enable SVD Reference
* @rmtoll VSR EN FL_SVD_EnableReference
* @param SVDx SVD instance
* @param ref This parameter can be one of the following values:
* @arg @ref FL_SVD_REFERENCE_1P0V
* @arg @ref FL_SVD_REFERENCE_0P95V
* @arg @ref FL_SVD_REFERENCE_0P9V
* @retval None
*/
__STATIC_INLINE void FL_SVD_EnableReference(SVD_Type *SVDx, uint32_t ref)
{
WRITE_REG(SVDx->VSR, ((ref & 0x7) << 0x0U));
}
/**
* @brief Get SVD Reference Enable Status
* @rmtoll VSR EN FL_SVD_IsEnabledReference
* @param SVDx SVD instance
* @param ref This parameter can be one of the following values:
* @arg @ref FL_SVD_REFERENCE_1P0V
* @arg @ref FL_SVD_REFERENCE_0P95V
* @arg @ref FL_SVD_REFERENCE_0P9V
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t FL_SVD_IsEnabledReference(SVD_Type *SVDx, uint32_t ref)
{
return (uint32_t)(READ_BIT(SVDx->VSR, ((ref & 0x7) << 0x0U)) == ((ref & 0x7) << 0x0U));
}
/**
* @brief Disable SVD Reference
* @rmtoll VSR EN FL_SVD_DisableReference
* @param SVDx SVD instance
* @param ref This parameter can be one of the following values:
* @arg @ref FL_SVD_REFERENCE_1P0V
* @arg @ref FL_SVD_REFERENCE_0P95V
* @arg @ref FL_SVD_REFERENCE_0P9V
* @retval None
*/
__STATIC_INLINE void FL_SVD_DisableReference(SVD_Type *SVDx, uint32_t ref)
{
CLEAR_BIT(SVDx->VSR, ((ref & 0x7) << 0x0U));
}
/**
* @}
*/
/** @defgroup SVD_FL_EF_Init Initialization and de-initialization functions
* @{
*/
FL_ErrorStatus FL_SVD_DeInit(SVD_Type *SVDx);
FL_ErrorStatus FL_SVD_Init(SVD_Type *SVDx, FL_SVD_InitTypeDef *init);
void FL_SVD_StructInit(FL_SVD_InitTypeDef *init);
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* __FM33LG0XX_FL_SVD_H*/
/*************************Py_Code_Generator Version: 0.1-0.11-0.1 @ 2020-09-22*************************/
/*************************(C) COPYRIGHT Fudan Microelectronics **** END OF FILE*************************/