12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /**
- ******************************************************************************
- * @file lib_wdt.c
- * @author Application Team
- * @version V4.4.0
- * @date 2018-09-27
- * @brief WDT library.
- ******************************************************************************
- * @attention
- *
- ******************************************************************************
- */
- #include "lib_wdt.h"
- #define WDTPASS_KEY 0xAA5555AA
- #define WDTCLR_KEY 0x55AAAA55
- /**
- * @brief Enable WDT timer.
- * @param None
- * @retval None
- */
- void WDT_Enable(void)
- {
- PMU->WDTPASS = WDTPASS_KEY;
- PMU->WDTEN |= PMU_WDTEN_WDTEN;
-
- PMU->WDTPASS = WDTPASS_KEY;
- PMU->WDTEN |= PMU_WDTEN_WDTEN;
- }
- /**
- * @brief Disable WDT timer.
- * @param None
- * @retval None
- */
- void WDT_Disable(void)
- {
- PMU->WDTPASS = WDTPASS_KEY;
- PMU->WDTEN &= ~PMU_WDTEN_WDTEN;
-
- PMU->WDTPASS = WDTPASS_KEY;
- PMU->WDTEN &= ~PMU_WDTEN_WDTEN;
- }
- /**
- * @brief Clear WDT counter.
- * @param None
- * @retval None
- */
- void WDT_Clear(void)
- {
- PMU->WDTCLR = WDTCLR_KEY;
- }
- /**
- * @brief Set WDT counting period.
- * @param counting period:
- WDT_2_SECS
- WDT_1_SECS
- WDT_0_5_SECS
- WDT_0_25_SECS
- * @retval None
- */
- void WDT_SetPeriod(uint32_t period)
- {
- uint32_t tmp;
-
- assert_parameters(IS_WDT_PERIOD(period));
-
- tmp = PMU->WDTEN;
- tmp &= ~PMU_WDTEN_WDTSEL;
- tmp |= period;
- PMU->WDTPASS = WDTPASS_KEY;
- PMU->WDTEN = tmp;
- }
- /**
- * @brief Get WDT counter value.
- * @param None
- * @retval current counter value.
- */
- uint16_t WDT_GetCounterValue(void)
- {
- return (PMU->WDTCLR & PMU_WDTCLR_WDTCNT);
- }
- /*********************************** END OF FILE ******************************/
|