/** ****************************************************************************** * @file xl_pmc.h * @author software group * @brief This file contains all the functions prototypes for the PMC * firmware library. ****************************************************************************** * @attention * * 2019 by Chipways Communications,Inc. All Rights Reserved. * This software is supplied under the terms of a license * agreement or non-disclosure agreement with Chipways. * Passing on and copying of this document,and communication * of its contents is not permitted without prior written * authorization. * *

© COPYRIGHT 2019 Chipways

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __XL_PMC_H__ #define __XL_PMC_H__ #ifdef __cplusplus extern "C" { #endif /* Includes ---------------------------------------------------------------*/ #include "XL6600.h" /* Register define ------------------------------------------------------------*/ /* SPMSC Bit Fields */ #define PMC_SPMSC_LVDE_MASK 0x4u #define PMC_SPMSC_LVDE_SHIFT 2 #define PMC_SPMSC_LVDSE_MASK 0x8u #define PMC_SPMSC_LVDSE_SHIFT 3 #define PMC_SPMSC_LVDRE_MASK 0x10u #define PMC_SPMSC_LVDRE_SHIFT 4 #define PMC_SPMSC_LVWIE_MASK 0x20u #define PMC_SPMSC_LVWIE_SHIFT 5 #define PMC_SPMSC_LVWACK_MASK 0x40u #define PMC_SPMSC_LVWACK_SHIFT 6 #define PMC_SPMSC_LVWF_MASK 0x80u #define PMC_SPMSC_LVWF_SHIFT 7 #define PMC_SPMSC_LVWV_MASK 0x3000u #define PMC_SPMSC_LVWV_SHIFT 12 #define PMC_SPMSC_LVDV_MASK 0x4000u #define PMC_SPMSC_LVDV_SHIFT 14 /** PMC - Register Layout Typedef */ typedef struct { __IO uint32_t SPMSC; /*!< ϵͳµçÔ´¹ÜÀí״̬ºÍ¿ØÖƼĴæÆ÷, offset: 0x0 */ } PMC_Type; extern PMC_Type* PMC; /** @addtogroup XL6600_StdPeriph_Driver * @{ */ /** @addtogroup PMC * @{ */ /* Exported types ------------------------------------------------------------*/ /** * @brief PMC³õʼ»¯½á¹¹Ì嶨Òå */ typedef struct { uint8_t PMC_LVWIntEnable; /*!< ʹÄÜ LVWF µÄÓ²¼þÖжÏÇëÇó */ uint8_t PMC_LVDRstEnable; /*!< ʹÄܵ͵çѹ¼ì²âÉú³ÉÓ²¼þ¸´Î» */ uint8_t PMC_LVDStopEnable; /*!< µÍѹ¼ì²âÔÚ Stop ģʽϵÄʹÄÜ */ uint8_t PMC_LVDectEnable; /*!< µÍѹ¼ì²âʹÄÜ */ uint8_t PMC_lvdvselect; /*!< µÍѹ¼ì²âµçѹѡÔñ */ uint8_t PMC_lvwvselect; /*!< µÍѹ¾¯±¨µçѹѡÔñ */ }PMC_InitTypeDef; /* Exported constants --------------------------------------------------------*/ /** @defgroup PMC_Exported_Constants PMCÄ£¿éʹÓòÎÊý¶¨Òå * @{ */ /** @defgroup PMC_Mode_Seclect PMCģʽѡÔñ¶¨Òå * @{ */ #define PMC_ModeRun 0 /*!< runģʽ */ #define PMC_ModeWait 1 /*!< waitģʽ */ #define PMC_ModeStop4 2 /*!< ʹÄÜStopģʽϵÍѹ¼ì²â */ #define PMC_ModeStop3 3 /*!< ʧÄÜStopģʽϵÍѹ¼ì²â */ /** * @} */ /** @defgroup Low-Voltage_Detect_Voltage_Select PMCµÍµçѹ¼ì²â¶¨Òå * @{ */ #define PMC_LVDV_LowTrip 0 /*!< Ñ¡ÔñµÍµçÆ½Ìø±äµã */ #define PMC_LVDV_HighTrip 1 /*!< Ñ¡Ôñ¸ßµçÆ½Ìø±äµã */ /** * @} */ /** @defgroup Low-Voltage_Warning_Voltage_Select PMCµÍµçѹ¾¯¸æ * @{ */ #define PMC_LVWV_LowTrip 0 /*!< Ñ¡ÔñµÍµçÆ½Ìø±äµã */ #define PMC_LVWV_Mid1Trip 1 /*!< Ñ¡ÔñÖмäµçƽ1 Ìø±äµã */ #define PMC_LVWV_Mid2Trip 2 /*!< Ñ¡ÔñÖмäµçƽ2 Ìø±äµã */ #define PMC_LVWV_HighTrip 3 /*!< Ñ¡Ôñ¸ßµçÆ½Ìø±äµã */ /** * @} */ /** * @} */ /* Exported macro ------------------------------------------------------------*/ /* Exported functions --------------------------------------------------------*/ void PMC_Deinit(void); void PMC_Init(const PMC_InitTypeDef *PMC_InitStruct); void PMC_SetMode(uint8_t u8PmcMode); FlagStatus PMC_GetLVWFlag(void); void PMC_ClrLVWFlag(void); #ifdef __cplusplus } #endif #endif /*__XL_PMC_H__ */ /** * @} */ /** * @} */