199 lines
5.4 KiB
C
199 lines
5.4 KiB
C
|
/************************************************************************************************/
|
|||
|
/**
|
|||
|
* @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 */
|