You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

166 lines
4.2 KiB

4 years ago
  1. /*********************************************************
  2. *Copyright (C), 2015, Shanghai Eastsoft Microelectronics Co., Ltd.
  3. *: lib_wwdt.c
  4. * : AE Team
  5. * : V1.01
  6. * : 2021/01/12
  7. * : WDT模块库函数
  8. * :
  9. 使
  10. **********************************************************/
  11. #include "lib_wdt.h"
  12. #include "system_ES8P5066.h"
  13. /************************************************WWDT*************************************************/
  14. /****************************************
  15. WWDT_Init
  16. UART初始化
  17. **************************************/
  18. void WWDT_Init(WWDT_InitStruType *WWDT_InitStruct)
  19. {
  20. uint32_t tmp;
  21. WWDT_RegUnLock();
  22. if (WWDT_InitStruct->WDT_Clock != WWDT_CLOCK_PCLK)
  23. tmp = (uint32_t)(32 * WWDT_InitStruct->WDT_Tms);
  24. else
  25. tmp = SystemCoreClock / 1000 * WWDT_InitStruct->WDT_Tms;
  26. WWDT->LOAD.LOAD = tmp;
  27. WWDT->CON.CLKS = WWDT_InitStruct->WDT_Clock;
  28. WWDT->CON.IE = WWDT_InitStruct->WDT_IE;
  29. WWDT->CON.RSTEN = WWDT_InitStruct->WDT_Rst;
  30. WWDT->CON.WWDTWIN = WWDT_InitStruct->WDT_Win;
  31. WWDT_RegLock();
  32. return;
  33. }
  34. /*************************************
  35. WWDT_SetReloadValue
  36. WWDT重载的初值
  37. 32-bit无符号整数
  38. **************************************/
  39. void WWDT_SetReloadValue(uint32_t Value)
  40. {
  41. WWDT->LOAD.LOAD = Value;
  42. return;
  43. }
  44. /*************************************
  45. WWDT_GetValue
  46. WWDT当前值
  47. **************************************/
  48. uint32_t WWDT_GetValue(void)
  49. {
  50. return (uint32_t)WWDT->VALUE.Word;
  51. }
  52. /*************************************
  53. WWDT_GetFlagStatus
  54. WWDT中断状态
  55. SET/RESET
  56. **************************************/
  57. FlagStatus WWDT_GetFlagStatus(void)
  58. {
  59. FlagStatus bitstatus = RESET;
  60. if (WWDT->RIS.WWDTIF != RESET)
  61. bitstatus = SET;
  62. return bitstatus;
  63. }
  64. /************************************************IWDT*************************************************/
  65. /*************************************
  66. IWDT_Init
  67. IWDT初始化
  68. **************************************/
  69. void IWDT_Init(IWDT_InitStruType *IWDT_InitStruct)
  70. {
  71. uint32_t tmp;
  72. IWDT_RegUnLock();
  73. if (IWDT_InitStruct->WDT_Clock != IWDT_CLOCK_PCLK)
  74. tmp = (uint32_t)(32 * IWDT_InitStruct->WDT_Tms);
  75. else
  76. tmp = SystemCoreClock / 1000 * IWDT_InitStruct->WDT_Tms;
  77. IWDT->LOAD.LOAD = tmp;
  78. IWDT->CON.CLKS = IWDT_InitStruct->WDT_Clock;
  79. IWDT->CON.IE = IWDT_InitStruct->WDT_IE;
  80. IWDT->CON.RSTEN = IWDT_InitStruct->WDT_Rst;
  81. IWDT_RegLock();
  82. return;
  83. }
  84. /*************************************
  85. IWDT_SetReloadValue
  86. IWDT重载的初值
  87. 32-bit无符号整数
  88. **************************************/
  89. void IWDT_SetReloadValue(uint32_t Value)
  90. {
  91. IWDT->LOAD.LOAD = Value;
  92. return;
  93. }
  94. /*************************************
  95. IWDT_GetValue
  96. IWDT当前值
  97. **************************************/
  98. uint32_t IWDT_GetValue(void)
  99. {
  100. return (uint32_t)IWDT->VALUE.VALUE;
  101. }
  102. /*************************************
  103. IWDT_GetFlagStatus
  104. IWDT中断状态
  105. SET/RESET
  106. **************************************/
  107. FlagStatus IWDT_GetFlagStatus(void)
  108. {
  109. FlagStatus bitstatus = RESET;
  110. if (IWDT->RIS.WDTIF != RESET)
  111. bitstatus = SET;
  112. return bitstatus;
  113. }
  114. /*************************************
  115. IWDT_GetITStatus
  116. IWDT使能中断状态
  117. SET/RESET
  118. **************************************/
  119. FlagStatus IWDT_GetITStatus(void)
  120. {
  121. FlagStatus bitstatus = RESET;
  122. if (IWDT->CON.IE != RESET)
  123. bitstatus = SET;
  124. return bitstatus;
  125. }