CIU32_L051_M307R/Peripheral/CIU32L051_Lib/Include/ciu32l051_std_wwdg.h

216 lines
5.7 KiB
C
Raw Normal View History

/************************************************************************************************/
/**
* @file ciu32l051_std_wwdg.h
* @author MCU Ecosystem Development Team
* @brief WWDG STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD>WWDG<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD>
*
*
**************************************************************************************************
* @attention
* Copyright (c) CEC Huada Electronic Design Co.,Ltd. All rights reserved.
*
**************************************************************************************************
*/
/* <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><C4BC>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD> */
#ifndef CIU32L051_STD_WWDG_H
#define CIU32L051_STD_WWDG_H
/************************************************************************************************/
/**
* @addtogroup CIU32L051_STD_Driver
* @{
*/
/**
* @defgroup WWDG WWDG
* @brief <EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD>Ź<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @{
*
*/
/************************************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
/*------------------------------------------includes--------------------------------------------*/
#include "ciu32l051_std_common.h"
/*--------------------------------------------define--------------------------------------------*/
/************************************************************************************************/
/**
* @defgroup WWDG_Constants WWDG Constants
* @brief WWDG<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @{
*
*/
/************************************************************************************************/
/* WWDGԤ<47><D4A4>Ƶ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define WWDG_PRESCALER_1 WWDG_CFG_WDGPR_DIV1 /**< WWDG<44><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>=(PCLK1/4096)/1 */
#define WWDG_PRESCALER_2 WWDG_CFG_WDGPR_DIV2 /**< WWDG<44><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>=(PCLK1/4096)/2 */
#define WWDG_PRESCALER_4 WWDG_CFG_WDGPR_DIV4 /**< WWDG<44><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>=(PCLK1/4096)/4 */
#define WWDG_PRESCALER_8 WWDG_CFG_WDGPR_DIV8 /**< WWDG<44><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>=(PCLK1/4096)/8 */
#define WWDG_PRESCALER_16 WWDG_CFG_WDGPR_DIV16 /**< WWDG<44><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>=(PCLK1/4096)/16 */
#define WWDG_PRESCALER_32 WWDG_CFG_WDGPR_DIV32 /**< WWDG<44><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>=(PCLK1/4096)/32 */
#define WWDG_PRESCALER_64 WWDG_CFG_WDGPR_DIV64 /**< WWDG<44><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>=(PCLK1/4096)/64 */
#define WWDG_PRESCALER_128 WWDG_CFG_WDGPR_DIV128 /**< WWDG<44><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>=(PCLK1/4096)/128 */
/**
* @}
*/
/*-------------------------------------------functions------------------------------------------*/
/************************************************************************************************/
/**
* @defgroup WWDG_External_Functions WWDG External Functions
* @brief WWDG<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @{
*
*/
/************************************************************************************************/
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>WWDG<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_wwdg_start(void)
{
WWDG->CR |= WWDG_CR_WDGEN;
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD>ֵ
* @param counter WWDG<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΧΪ<EFBFBD><EFBFBD>0x00-0x3F
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_wwdg_refresh_counter(uint32_t counter)
{
MODIFY_REG(WWDG->CR, WWDG_CR_CNT, counter);
}
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
* @retval uint32_t WWDG<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΧΪ<EFBFBD><EFBFBD>0x00-0x3F
*/
__STATIC_INLINE uint32_t std_wwdg_get_counter(void)
{
return(WWDG->CR & WWDG_CR_CNT);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>Ƶֵ
* @param prescaler WWDG<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>Ƶֵ<EFBFBD><EFBFBD>
* @arg WWDG_PRESCALER_1
* @arg WWDG_PRESCALER_2
* @arg WWDG_PRESCALER_4
* @arg WWDG_PRESCALER_8
* @arg WWDG_PRESCALER_16
* @arg WWDG_PRESCALER_32
* @arg WWDG_PRESCALER_64
* @arg WWDG_PRESCALER_128
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_wwdg_set_prescaler(uint32_t prescaler)
{
MODIFY_REG(WWDG->CFG, WWDG_CFG_WDGPR, prescaler);
}
/**
* @brief <EFBFBD><EFBFBD>ȡԤ<EFBFBD><EFBFBD>Ƶֵ
* @retval uint32_t WWDG<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>Ƶֵ<EFBFBD><EFBFBD>
* @arg WWDG_PRESCALER_1
* @arg WWDG_PRESCALER_2
* @arg WWDG_PRESCALER_4
* @arg WWDG_PRESCALER_8
* @arg WWDG_PRESCALER_16
* @arg WWDG_PRESCALER_32
* @arg WWDG_PRESCALER_64
* @arg WWDG_PRESCALER_128
*/
__STATIC_INLINE uint32_t std_wwdg_get_prescaler(void)
{
return(WWDG->CFG & WWDG_CFG_WDGPR);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD>ֵ
* @param window WWDG<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΧΪ<EFBFBD><EFBFBD>0x00-0x3F
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_wwdg_set_window(uint32_t window)
{
MODIFY_REG(WWDG->CFG, WWDG_CFG_WIN, window);
}
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
* @retval uint32_t WWDG<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΧΪ<EFBFBD><EFBFBD>0x00-0x3F
*/
__STATIC_INLINE uint32_t std_wwdg_get_window(void)
{
return(WWDG->CFG & WWDG_CFG_WIN);
}
/**
* @brief WWDG<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_wwdg_interrupt_enable(void)
{
WWDG->CFG |= WWDG_CFG_EWI;
}
/**
* @brief <EFBFBD><EFBFBD>ȡWWDG<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><EFBFBD>״̬
* @retval bool <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD>жϽ<EFBFBD><EFBFBD><EFBFBD>
* @arg true<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ʾʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
* @arg false<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾδʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
*/
__STATIC_INLINE bool std_wwdg_get_interrupt_enable(void)
{
return((WWDG->CFG & WWDG_CFG_EWI) == WWDG_CFG_EWI);
}
/**
* @brief <EFBFBD><EFBFBD>ȡWWDG<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD>־״̬
* @note <EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>EWI<EFBFBD>жϣ<EFBFBD><EFBFBD><EFBFBD>λҲ<EFBFBD><EFBFBD><EFBFBD>1
* @retval bool <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD>жϽ<EFBFBD><EFBFBD><EFBFBD>
* @arg true<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg false<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD>־δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
__STATIC_INLINE bool std_wwdg_get_early_wakeup_flag(void)
{
return(WWDG->SR == WWDG_SR_EWIF);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>WWDG<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD>־
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_wwdg_clear_early_wakeup_flag(void)
{
WWDG->SR &= (~ WWDG_SR_EWIF);
}
/**
* @}
*/
#ifdef __cplusplus
}
#endif
/**
* @}
*/
/**
* @}
*/
#endif /* CIU32L051_STD_WWDG_H */