nu_wwdt.c 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /**************************************************************************//**
  2. * @file wwdt.c
  3. * @brief N9H30 WWDT driver source file
  4. *
  5. * @note
  6. * SPDX-License-Identifier: Apache-2.0
  7. * Copyright (C) 2018 Nuvoton Technology Corp. All rights reserved.
  8. *****************************************************************************/
  9. #include "N9H30.h"
  10. #include "nu_sys.h"
  11. #include "nu_wwdt.h"
  12. /** @addtogroup N9H30_Device_Driver N9H30 Device Driver
  13. @{
  14. */
  15. /** @addtogroup N9H30_WWDT_Driver WWDT Driver
  16. @{
  17. */
  18. /** @addtogroup N9H30_WWDT_EXPORTED_FUNCTIONS WWDT Exported Functions
  19. @{
  20. */
  21. /**
  22. * @brief This function make WWDT module start counting with different counter period and compared window value
  23. * @param[in] u32PreScale Prescale period for the WWDT counter period. Valid values are:
  24. * - \ref WWDT_PRESCALER_1
  25. * - \ref WWDT_PRESCALER_2
  26. * - \ref WWDT_PRESCALER_4
  27. * - \ref WWDT_PRESCALER_8
  28. * - \ref WWDT_PRESCALER_16
  29. * - \ref WWDT_PRESCALER_32
  30. * - \ref WWDT_PRESCALER_64
  31. * - \ref WWDT_PRESCALER_128
  32. * - \ref WWDT_PRESCALER_192
  33. * - \ref WWDT_PRESCALER_256
  34. * - \ref WWDT_PRESCALER_384
  35. * - \ref WWDT_PRESCALER_512
  36. * - \ref WWDT_PRESCALER_768
  37. * - \ref WWDT_PRESCALER_1024
  38. * - \ref WWDT_PRESCALER_1536
  39. * - \ref WWDT_PRESCALER_2048
  40. * @param[in] u32CmpValue Window compared value. Valid values are between 0x0 to 0x3F
  41. * @param[in] u32EnableInt Enable WWDT interrupt or not. Valid values are \ref TRUE and \ref FALSE
  42. * @return None
  43. * @note Application can call this function can only once after boot up
  44. */
  45. void WWDT_Open(UINT u32PreScale, UINT u32CmpValue, UINT u32EnableInt)
  46. {
  47. UINT reg;
  48. reg = u32PreScale |
  49. (u32CmpValue << 16) |
  50. 0x1 | // enable
  51. (u32EnableInt ? 0x2 : 0);
  52. outpw(REG_WWDT_CTL, reg);
  53. return;
  54. }
  55. /*@}*/ /* end of group N9H30_WWDT_EXPORTED_FUNCTIONS */
  56. /*@}*/ /* end of group N9H30_WWDT_Driver */
  57. /*@}*/ /* end of group N9H30_Device_Driver */
  58. /*** (C) COPYRIGHT 2018 Nuvoton Technology Corp. ***/