1 2 /*********************************************************************** 3 * Filename : HAL_WDT.h 4 * Description : HAL WDT driver header file 5 * Author(s) : CWT 6 * version : V1.0 7 * Modify date : 2020-04-17 8 ***********************************************************************/ 9 10 #ifndef __HAL_WDT_H__ 11 #define __HAL_WDT_H__ 12 13 #include "ACM32Fxx_HAL.h" 14 15 16 /**************** Bit definition for WDT CTRL register ********************/ 17 #define WDT_CTRL_EN BIT7 18 #define WDT_CTRL_MODE BIT6 19 #define WDT_CTRL_INTEN BIT4 20 #define WDT_CTRL_DIVISOR (BIT0|BIT1|BIT2) 21 22 /**************** Bit definition for WDTRIS register ********************/ 23 #define WDT_WDTRIS BIT0 24 25 typedef enum 26 { 27 WDT_MODE_RST = 0x00U, 28 WDT_MODE_INT = 0x01U, 29 } WDT_MODE; 30 31 typedef enum 32 { 33 WDT_DIVISOR_NONE = 0x00U, 34 WDT_DIVISOR_2 = 0x01U, 35 WDT_DIVISOR_4 = 0x02U, 36 WDT_DIVISOR_8 = 0x03U, 37 WDT_DIVISOR_16 = 0x04U, 38 WDT_DIVISOR_32 = 0x05U, 39 WDT_DIVISOR_64 = 0x06U, 40 WDT_DIVISOR_128 = 0x07U, 41 } WDT_DIVISOR; 42 43 typedef struct 44 { 45 WDT_DIVISOR WDTDivisor; 46 WDT_MODE WDTMode; 47 uint32_t WDTLoad; 48 uint32_t WDTINTCLRTIME; 49 } WDT_InitTypeDef; 50 51 typedef struct 52 { 53 WDT_TypeDef *Instance; /*!< WDT registers base address */ 54 WDT_InitTypeDef Init; /*!< WDT communication parameters */ 55 }WDT_HandleTypeDef; 56 57 #define WDT_ENABLE (0x01 << 7) 58 #define WDT_DISABLE (~WDT_ENABLE) 59 #define WDT_INT_ENABLE (0x01 << 4) 60 #define WDT_INT_DISABLE (~WDT_INT_ENABLE) 61 /************************************************************************ 62 * function : HAL_WDT_Feed 63 * Description: WDT feed. 64 * input : 65 * none 66 * return: none 67 ************************************************************************/ 68 void HAL_WDT_Feed(WDT_HandleTypeDef* hwdt); 69 /************************************************************************ 70 * function : WDT_IRQHandler 71 * Description: WDT interrupt service routine. 72 * input : 73 * none 74 * return: none 75 ************************************************************************/ 76 void HAL_WDT_IRQHandler(WDT_HandleTypeDef* hwdt); 77 /************************************************************************ 78 * function : HAL_WDT_Init 79 * Description: WDT initiation. 80 * input : 81 * pinit initiation parameters 82 * return: none 83 ************************************************************************/ 84 void HAL_WDT_Init(WDT_HandleTypeDef* hwdt); 85 /************************************************************************ 86 * function : WDT_Start 87 * Description: WDT start 88 * input : none 89 * 90 * return: none 91 ************************************************************************/ 92 void HAL_WDT_Start(WDT_HandleTypeDef* hwdt); 93 /************************************************************************ 94 * function : WDT_Stop 95 * Description: WDT stop 96 * input : none 97 * 98 * return: none 99 ************************************************************************/ 100 void HAL_WDT_Stop(WDT_HandleTypeDef* hwdt); 101 /************************************************************************ 102 * function : WDT_Int_Enable 103 * Description: WDT int enable 104 * input : none 105 * 106 * return: none 107 ************************************************************************/ 108 void HAL_WDT_Int_Enable(WDT_HandleTypeDef* hwdt); 109 /************************************************************************ 110 * function : WDT_Int_Disable 111 * Description: WDT int disable 112 * input : none 113 * 114 * return: none 115 ************************************************************************/ 116 void HAL_WDT_Int_Disable(WDT_HandleTypeDef* hwdt); 117 118 #endif 119