800*320工程文件+初始demo提交
This commit is contained in:
96
SW/components/drivers/peripheral/Inc/driver_wdt.h
Normal file
96
SW/components/drivers/peripheral/Inc/driver_wdt.h
Normal file
@ -0,0 +1,96 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* @file driver_wdt.h
|
||||
* @author FreqChip Firmware Team
|
||||
* @version V1.0.0
|
||||
* @date 2022
|
||||
* @brief Header file of WDT HAL module.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2022 FreqChip.
|
||||
* All rights reserved.
|
||||
******************************************************************************
|
||||
*/
|
||||
#ifndef __DRIVER_WDT_H__
|
||||
#define __DRIVER_WDT_H__
|
||||
|
||||
#include "fr30xx.h"
|
||||
|
||||
/** @addtogroup WDT_Registers_Section
|
||||
* @{
|
||||
*/
|
||||
/* ################################ Register Section Start ################################ */
|
||||
|
||||
/* WDT Control Register */
|
||||
typedef struct
|
||||
{
|
||||
uint32_t WDT_EN : 1;
|
||||
uint32_t RMOD : 1;
|
||||
uint32_t RPL : 3;
|
||||
uint32_t rsv_0 : 27;
|
||||
}wdt_ctrl_t;
|
||||
|
||||
/* Timeout Range Register */
|
||||
typedef struct
|
||||
{
|
||||
uint32_t TOP : 4;
|
||||
uint32_t TOP_INIT : 4;
|
||||
uint32_t rsv_0 : 24;
|
||||
}wdt_timout_range_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
volatile wdt_ctrl_t wdt_CR; /* Offset 0x00 */
|
||||
volatile wdt_timout_range_t wdt_TORR; /* Offset 0x04 */
|
||||
volatile uint32_t wdt_CCVR; /* Offset 0x08 */
|
||||
volatile uint32_t wdt_CRR; /* Offset 0x0C */
|
||||
volatile uint32_t wdt_STAT; /* Offset 0x10 */
|
||||
volatile uint32_t wdt_EOI; /* Offset 0x14 */
|
||||
volatile uint32_t rsv_0; /* Offset 0x18 */
|
||||
volatile uint32_t rsv_1; /* Offset 0x1C */
|
||||
volatile uint32_t wdt_CNT; /* Offset 0x20 */
|
||||
}struct_WDT_t;
|
||||
|
||||
#define WDT ((struct_WDT_t *)(WDT_BASE))
|
||||
|
||||
/* ################################ Register Section END ################################## */
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
|
||||
/** @addtogroup WDT_Initialization_Config_Section
|
||||
* @{
|
||||
*/
|
||||
/* ################################ Initialization<6F><6E>Config Section Start ################################ */
|
||||
|
||||
typedef enum
|
||||
{
|
||||
WDT_MODE_0, /* Timeout reset system */
|
||||
WDT_MODE_1, /* Timeout generate an interrupt,
|
||||
if the interrupt is not cleared by the time a second timeout occurs, then it generates a system reset */
|
||||
}enum_WDTMode_t;
|
||||
|
||||
/* ################################ Initialization<6F><6E>Config Section END ################################## */
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
|
||||
/* Exported functions --------------------------------------------------------*/
|
||||
|
||||
/* wdt_init */
|
||||
void wdt_init(enum_WDTMode_t fe_mode, uint32_t fu32_WDTCount);
|
||||
|
||||
/* wdt_start */
|
||||
/* wdt_stop */
|
||||
void wdt_start(void);
|
||||
void wdt_stop(void);
|
||||
|
||||
/* wdt_feed */
|
||||
void wdt_feed(void);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user