CIU32_L051_M307R/Peripheral/CIU32L051_Lib/Include/ciu32l051_std_iwdg.h

199 lines
5.4 KiB
C
Raw Normal View History

/************************************************************************************************/
/**
* @file ciu32l051_std_iwdg.h
* @author MCU Ecosystem Development Team
* @brief IWDG STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD>IWDG<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_IWDG_H
#define CIU32L051_STD_IWDG_H
/************************************************************************************************/
/**
* @addtogroup CIU32L051_STD_Driver
* @{
*/
/**
* @defgroup IWDG IWDG
* @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 IWDG_Constants IWDG Constants
* @brief IWDG<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @{
*
*/
/************************************************************************************************/
/* IWDG<44><47><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD> */
#define IWDG_RELOAD (0x0000AAAAUL) /**< IWDG ι<><CEB9> */
#define IWDG_ENABLE (0x0000CCCCUL) /**< IWDG ʹ<><CAB9> */
#define IWDG_WRITE_ACCESS_ENABLE (0x00005555UL) /**< IWDG дȨ<D0B4><C8A8>ʹ<EFBFBD><CAB9> */
#define IWDG_WRITE_ACCESS_DISABLE (0x00000000UL) /**< IWDG дȨ<D0B4>޹ر<DEB9> */
/* IWDG<44><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B6A8> */
#define IWDG_OVERFLOW_PERIOD_128 IWDG_CFG_OVP_128 /**< IWDG<44><47><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ128ms */
#define IWDG_OVERFLOW_PERIOD_256 IWDG_CFG_OVP_256 /**< IWDG<44><47><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ256ms */
#define IWDG_OVERFLOW_PERIOD_512 IWDG_CFG_OVP_512 /**< IWDG<44><47><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ512ms */
#define IWDG_OVERFLOW_PERIOD_1024 IWDG_CFG_OVP_1024 /**< IWDG<44><47><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ1.024s */
#define IWDG_OVERFLOW_PERIOD_2048 IWDG_CFG_OVP_2048 /**< IWDG<44><47><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ2.048s */
#define IWDG_OVERFLOW_PERIOD_4096 IWDG_CFG_OVP_4096 /**< IWDG<44><47><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ4.096s */
#define IWDG_OVERFLOW_PERIOD_8192 IWDG_CFG_OVP_8192 /**< IWDG<44><47><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ8.192s */
#define IWDG_OVERFLOW_PERIOD_16384 IWDG_CFG_OVP_16384 /**< IWDG<44><47><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ16.384s */
/**
* @}
*/
/*-------------------------------------------functions------------------------------------------*/
/************************************************************************************************/
/**
* @defgroup IWDG_External_Functions IWDG External Functions
* @brief IWDG<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @{
*
*/
/************************************************************************************************/
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>IWDG<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note ʹ<EFBFBD><EFBFBD>IWDG<EFBFBD><EFBFBD>,IWDG<EFBFBD>޷<EFBFBD>ֹͣ
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_iwdg_start(void)
{
IWDG->CR = IWDG_ENABLE;
}
/**
* @brief ʹ<EFBFBD><EFBFBD>IWDG_CFG,IWDG_WINR<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>дȨ<EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_iwdg_write_access_enable(void)
{
IWDG->CR = IWDG_WRITE_ACCESS_ENABLE;
}
/**
* @brief <EFBFBD><EFBFBD>ֹIWDG_CFG<EFBFBD><EFBFBD>IWDG_WINR<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>дȨ<EFBFBD><EFBFBD>
* @note <EFBFBD><EFBFBD>дȨ<EFBFBD>ޱ<EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IWDG_CFG<EFBFBD><EFBFBD>IWDG_WINRд<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_iwdg_write_access_disable(void)
{
IWDG->CR = IWDG_WRITE_ACCESS_DISABLE;
}
/**
* @brief IWDGι<EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_iwdg_refresh(void)
{
IWDG->CR = IWDG_RELOAD;
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
* @param overflow_period IWDG<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>
* @arg IWDG_OVERFLOW_PERIOD_128
* @arg IWDG_OVERFLOW_PERIOD_256
* @arg IWDG_OVERFLOW_PERIOD_512
* @arg IWDG_OVERFLOW_PERIOD_1024
* @arg IWDG_OVERFLOW_PERIOD_2048
* @arg IWDG_OVERFLOW_PERIOD_4096
* @arg IWDG_OVERFLOW_PERIOD_8192
* @arg IWDG_OVERFLOW_PERIOD_16384
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_iwdg_set_overflow_period(uint32_t overflow_period)
{
IWDG->CFG = overflow_period;
}
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
* @retval uint32_t IWDG<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>
* @arg IWDG_OVERFLOW_PERIOD_128
* @arg IWDG_OVERFLOW_PERIOD_256
* @arg IWDG_OVERFLOW_PERIOD_512
* @arg IWDG_OVERFLOW_PERIOD_1024
* @arg IWDG_OVERFLOW_PERIOD_2048
* @arg IWDG_OVERFLOW_PERIOD_4096
* @arg IWDG_OVERFLOW_PERIOD_8192
* @arg IWDG_OVERFLOW_PERIOD_16384
*/
__STATIC_INLINE uint32_t std_iwdg_get_overflow_period(void)
{
return(IWDG->CFG);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD>ֵ
* @param window IWDG<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>ֵ
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_iwdg_set_window(uint32_t window)
{
IWDG->WINR = window;
}
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
* @retval uint32_t IWDG<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>ֵ
*/
__STATIC_INLINE uint32_t std_iwdg_get_window(void)
{
return(IWDG->WINR);
}
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
* @retval uint32_t IWDG<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ֵ
*/
__STATIC_INLINE uint32_t std_iwdg_get_counter(void)
{
return(IWDG->CNT);
}
/**
* @}
*/
#ifdef __cplusplus
}
#endif
/**
* @}
*/
/**
* @}
*/
#endif /* CIU32L051_STD_IWDG_H */