/*
 * @Author       : stark1898y 1658608470@qq.com
 * @Date         : 2024-12-15 16:13:37
 * @LastEditors  : stark1898y 1658608470@qq.com
 * @LastEditTime : 2024-12-15 16:13:37
 * @FilePath     : \BLE_TYQ_CH592F - 副本\BSP\inc\bsp_iwdg.h
 * @Description  :
 *
 * Copyright (c) 2024 by yzy, All Rights Reserved.
 */
/*
 * @Author       : stark1898y 1658608470@qq.com
 * @Date         : 2024-12-14 10:51:01
 * @LastEditors  : stark1898y 1658608470@qq.com
 * @LastEditTime : 2024-12-15 11:16:24
 * @FilePath     : \BLE_TYQ_CH592F\BSP\inc\bsp_iwdg.h
 * @Description  :
 *
 * Copyright (c) 2024 by yzy, All Rights Reserved.
 */
#ifndef __BSP_IWDG_H__
#define __BSP_IWDG_H__

#include "CONFIG.h"

#define  RB_RLR             0x0FFF                    // RW, watch-dog counter reload (write protect)
#define  RB_PR              0x7000                    // PR, prescale (write protect)
#define  RB_PVU             0x8000                    // RO, register update flag (write protect)
#define  RB_COUNT           0xFF0000                  // RO, watch-dog down counter
#define  RB_STOP_EN         0x20000000                // RW, watch-dog stop enable (write protect)
#define  RB_WR_PROTECT      0x40000000                // RO, write protect
#define  RB_IWDG_EN         0x80000000                // RO, watch-dog enable

void IWDG_Init(uint16_t ms);

// 需要定时调用喂狗
// 在看门狗键寄存器 (R32_IWDG_KR) 中，软件要以一定的间隔写入 0xAAAA，重装载计数值，这就是喂狗的操作。
// 否则，当计数器为 0 时，看门狗会产生复位。
#define  FEED_IWDG()   {R32_IWDG_KR=0xAAAA;}

void ShowRestartReason(void);

#endif // !__BSP_IWDG_H__




