lib_ana.c 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. /**
  2. ******************************************************************************
  3. * @file lib_ana.c
  4. * @author Application Team
  5. * @version V1.1.0
  6. * @date 2019-10-28
  7. * @brief Analog library.
  8. ******************************************************************************
  9. * @attention
  10. *
  11. *
  12. ******************************************************************************
  13. */
  14. /* Includes ------------------------------------------------------------------*/
  15. #include "lib_ana.h"
  16. /**
  17. * @brief Gets analog status.
  18. * @param StatusMask:
  19. ANA_STATUS_AVCCLV
  20. ANA_STATUS_VDCINDROP
  21. ANA_STATUS_VDDALARM
  22. ANA_STATUS_COMP2
  23. ANA_STATUS_COMP1
  24. ANA_STATUS_LOCKL
  25. ANA_STATUS_LOCKH
  26. * @retval Analog status
  27. */
  28. uint8_t ANA_GetStatus(uint32_t StatusMask)
  29. {
  30. /* Check parameters */
  31. assert_parameters(IS_ANA_STATUS(StatusMask));
  32. if (ANA->CMPOUT & StatusMask)
  33. {
  34. return 1;
  35. }
  36. else
  37. {
  38. return 0;
  39. }
  40. }
  41. /**
  42. * @brief Gets analog interrupt status.
  43. * @param IntMask:
  44. ANA_INT_UPPER_TH3
  45. ANA_INT_LOWER_TH3
  46. ANA_INT_UPPER_TH2
  47. ANA_INT_LOWER_TH2
  48. ANA_INT_UPPER_TH1
  49. ANA_INT_LOWER_TH1
  50. ANA_INT_UPPER_TH0
  51. ANA_INT_LOWER_TH0
  52. ANA_INT_TADC_OVER
  53. ANA_INT_REGERR
  54. ANA_INT_SLPFAIL_VDCIN
  55. ANA_INT_AVCCLV
  56. ANA_INT_VDCINDROP
  57. ANA_INT_VDDALARM
  58. ANA_INT_COMP2
  59. ANA_INT_COMP1
  60. ANA_INT_ADCA
  61. ANA_INT_ADCM
  62. * @retval interrupt status.
  63. */
  64. uint8_t ANA_GetINTStatus(uint32_t IntMask)
  65. {
  66. /* Check parameters */
  67. assert_parameters(IS_ANA_INTSTSR(IntMask));
  68. if (ANA->INTSTS&IntMask)
  69. {
  70. return 1;
  71. }
  72. else
  73. {
  74. return 0;
  75. }
  76. }
  77. /**
  78. * @brief Clears analog interrupt status.
  79. * @param IntMask:status to clear, can use the '|' operator.
  80. ANA_INT_UPPER_TH3
  81. ANA_INT_LOWER_TH3
  82. ANA_INT_UPPER_TH2
  83. ANA_INT_LOWER_TH2
  84. ANA_INT_UPPER_TH1
  85. ANA_INT_LOWER_TH1
  86. ANA_INT_UPPER_TH0
  87. ANA_INT_LOWER_TH0
  88. ANA_INT_TADC_OVER
  89. ANA_INT_REGERR
  90. ANA_INT_SLPFAIL_VDCIN
  91. ANA_INT_AVCCLV
  92. ANA_INT_VDCINDROP
  93. ANA_INT_VDDALARM
  94. ANA_INT_COMP2
  95. ANA_INT_COMP1
  96. ANA_INT_ADCA
  97. ANA_INT_ADCM
  98. * @retval None
  99. */
  100. void ANA_ClearINTStatus(uint32_t IntMask)
  101. {
  102. /* Check parameters */
  103. assert_parameters(IS_ANA_INTSTSC(IntMask));
  104. ANA->INTSTS = IntMask;
  105. }
  106. /**
  107. * @brief Enables or disables analog interrupt.
  108. * @param IntMask:status to clear, can use the '|' operator.
  109. ANA_INT_UPPER_TH3
  110. ANA_INT_LOWER_TH3
  111. ANA_INT_UPPER_TH2
  112. ANA_INT_LOWER_TH2
  113. ANA_INT_UPPER_TH1
  114. ANA_INT_LOWER_TH1
  115. ANA_INT_UPPER_TH0
  116. ANA_INT_LOWER_TH0
  117. ANA_INT_TADC_OVER
  118. ANA_INT_REGERR
  119. ANA_INT_SLPFAIL_VDCIN
  120. ANA_INT_AVCCLV
  121. ANA_INT_VDCINDROP
  122. ANA_INT_VDDALARM
  123. ANA_INT_COMP2
  124. ANA_INT_COMP1
  125. ANA_INT_ADCA
  126. ANA_INT_ADCM
  127. NewState:
  128. ENABLE
  129. DISABLE
  130. * @retval None
  131. */
  132. void ANA_INTConfig(uint32_t IntMask, uint32_t NewState)
  133. {
  134. uint32_t tmp;
  135. /* Check parameters */
  136. assert_parameters(IS_ANA_INT(IntMask));
  137. assert_parameters(IS_FUNCTIONAL_STATE(NewState));
  138. tmp = ANA->INTEN;
  139. if (NewState == ENABLE)
  140. {
  141. tmp |= IntMask;
  142. }
  143. else
  144. {
  145. tmp &= ~IntMask;
  146. }
  147. ANA->INTEN = tmp;
  148. }
  149. /*********************************** END OF FILE ******************************/