82 lines
2.8 KiB
C
82 lines
2.8 KiB
C
/******************************************************************************
|
|
* 版权所有:苏州领慧立芯科技有限公司
|
|
* Copyright (c) 2020-2025 Suzhou Legendsemi Technology Co., Ltd.
|
|
******************************************************************************
|
|
* All rights reserved. Distributed under MIT license.
|
|
* The file is encoded in UTF-8 without signature.
|
|
* @file lh32m0g30x_iwdg.h
|
|
* @version 2025-09-08
|
|
******************************************************************************/
|
|
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
|
#ifndef __LH32M0G3x_IWDG_H
|
|
#define __LH32M0G3x_IWDG_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include "lh32m0xx_lhl.h"
|
|
|
|
/* Public Definition ---------------------------------------------------------*/
|
|
|
|
/* KR register bit mask */
|
|
#define KR_KEY_RELOAD ((uint16_t)0xAAAA)
|
|
#define KR_KEY_ENABLE ((uint16_t)0xCCCC)
|
|
#define KR_KEY_START ((uint16_t)0xAAAA)
|
|
#define KR_KEY_UNLOCK ((uint16_t)0x5555)
|
|
|
|
/** @defgroup IWDG_prescaler
|
|
* @{
|
|
*/
|
|
typedef enum {
|
|
IWDG_PRESCALER_4 = ((uint8_t)0x00),
|
|
IWDG_PRESCALER_8 = ((uint8_t)0x01),
|
|
IWDG_PRESCALER_16 = ((uint8_t)0x02),
|
|
IWDG_PRESCALER_32 = ((uint8_t)0x03),
|
|
IWDG_PRESCALER_64 = ((uint8_t)0x04),
|
|
IWDG_PRESCALER_128 = ((uint8_t)0x05),
|
|
IWDG_PRESCALER_256 = ((uint8_t)0x06),
|
|
} IWDG_PRESCALER_t;
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup IWDG_Flag
|
|
* @{
|
|
*/
|
|
#define IWDG_FLAG_PVU ((uint16_t)0x0001)
|
|
#define IWDG_FLAG_RVU ((uint16_t)0x0002)
|
|
#define IS_IWDG_FLAG(FLAG) (((FLAG) == IWDG_FLAG_PVU) || ((FLAG) == IWDG_FLAG_RVU))
|
|
#define IS_IWDG_RELOAD(RELOAD) ((RELOAD) <= 0xFFF)
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Exported macro ------------------------------------------------------------*/
|
|
/* Exported functions --------------------------------------------------------*/
|
|
|
|
/* Prescaler and Counter configuration functions ******************************/
|
|
LHL_StatusTypeDef LHL_IWDG_SetPrescaler(IWDG_PRESCALER_t IWDG_Prescaler, uint32_t Timeout);
|
|
LHL_StatusTypeDef LHL_IWDG_SetReload(uint16_t Reload, uint32_t Timeout);
|
|
LHL_StatusTypeDef LHL_IWDG_Unlock(void);
|
|
void LHL_IWDG_Lock(void);
|
|
|
|
/* IWDG activation function ***************************************************/
|
|
void LHL_IWDG_Reload(void);
|
|
LHL_StatusTypeDef LHL_IWDG_Stop(void);
|
|
LHL_StatusTypeDef LHL_IWDG_Resume(void);
|
|
LHL_StatusTypeDef LHL_IWDG_Start(void);
|
|
|
|
/* Flag management function ***************************************************/
|
|
//FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|
|
/*********************************End of File**********************************/
|