r_pdl_tmr.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. /*""FILE COMMENT""*******************************************************
  2. * System Name : Timer TMR API for RX62Nxx
  3. * File Name : r_pdl_tmr.h
  4. * Version : 1.02
  5. * Contents : Timer TMR API header
  6. * Customer :
  7. * Model :
  8. * Order :
  9. * CPU : RX
  10. * Compiler : RXC
  11. * OS : Nothing
  12. * Programmer :
  13. * Note :
  14. ************************************************************************
  15. * Copyright, 2011. Renesas Electronics Corporation
  16. * and Renesas Solutions Corporation
  17. ************************************************************************
  18. * History : 2011.04.08
  19. * : Ver 1.02
  20. * : CS-5 release.
  21. *""FILE COMMENT END""**************************************************/
  22. #ifndef R_PDL_TMR_H
  23. #define R_PDL_TMR_H
  24. #include "r_pdl_common_defs_RX62Nxx.h"
  25. /* Function prototypes */
  26. bool R_TMR_Set(
  27. uint8_t
  28. );
  29. bool R_TMR_CreateChannel(
  30. uint8_t,
  31. uint32_t,
  32. uint8_t,
  33. uint8_t,
  34. uint8_t,
  35. uint8_t,
  36. void *,
  37. void *,
  38. void *,
  39. uint8_t
  40. );
  41. bool R_TMR_CreateUnit(
  42. uint8_t,
  43. uint32_t,
  44. uint8_t,
  45. uint16_t,
  46. uint16_t,
  47. uint16_t,
  48. void *,
  49. void *,
  50. void *,
  51. uint8_t
  52. );
  53. bool R_TMR_CreatePeriodic(
  54. uint8_t,
  55. uint32_t,
  56. float,
  57. float,
  58. void *,
  59. void *,
  60. uint8_t
  61. );
  62. bool R_TMR_CreateOneShot(
  63. uint8_t,
  64. uint32_t,
  65. float,
  66. void *,
  67. uint8_t
  68. );
  69. bool R_TMR_Destroy(
  70. uint8_t
  71. );
  72. bool R_TMR_ControlChannel(
  73. uint8_t,
  74. uint32_t,
  75. uint8_t,
  76. uint8_t,
  77. uint8_t
  78. );
  79. bool R_TMR_ControlUnit(
  80. uint8_t,
  81. uint32_t,
  82. uint16_t,
  83. uint16_t,
  84. uint16_t
  85. );
  86. bool R_TMR_ControlPeriodic(
  87. uint8_t,
  88. uint32_t,
  89. float,
  90. float
  91. );
  92. bool R_TMR_ReadChannel(
  93. uint8_t,
  94. uint8_t *,
  95. uint8_t *,
  96. uint8_t *,
  97. uint8_t *
  98. );
  99. bool R_TMR_ReadUnit(
  100. uint8_t,
  101. uint8_t *,
  102. uint16_t *,
  103. uint16_t *,
  104. uint16_t *
  105. );
  106. /* Pin selection */
  107. #define PDL_TMR_PIN_TMR0_A 0x01u
  108. #define PDL_TMR_PIN_TMR0_B 0x02u
  109. #define PDL_TMR_PIN_TMR1_A 0x04u
  110. #define PDL_TMR_PIN_TMR1_B 0x08u
  111. #define PDL_TMR_PIN_TMR2_A 0x10u
  112. #define PDL_TMR_PIN_TMR2_B 0x20u
  113. #define PDL_TMR_PIN_TMR3_A 0x40u
  114. #define PDL_TMR_PIN_TMR3_B 0x80u
  115. /* Counter clock sources */
  116. #define PDL_TMR_CLK_OFF 0x00000001ul
  117. #define PDL_TMR_CLK_EXT_RISING 0x00000002ul
  118. #define PDL_TMR_CLK_EXT_FALLING 0x00000004ul
  119. #define PDL_TMR_CLK_EXT_BOTH 0x00000008ul
  120. #define PDL_TMR_CLK_PCLK_DIV_1 0x00000010ul
  121. #define PDL_TMR_CLK_PCLK_DIV_2 0x00000020ul
  122. #define PDL_TMR_CLK_PCLK_DIV_8 0x00000040ul
  123. #define PDL_TMR_CLK_PCLK_DIV_32 0x00000080ul
  124. #define PDL_TMR_CLK_PCLK_DIV_64 0x00000100ul
  125. #define PDL_TMR_CLK_PCLK_DIV_1024 0x00000200ul
  126. #define PDL_TMR_CLK_PCLK_DIV_8192 0x00000400ul
  127. #define PDL_TMR_CLK_TMR1_OVERFLOW 0x00000800ul
  128. #define PDL_TMR_CLK_TMR3_OVERFLOW 0x00001000ul
  129. #define PDL_TMR_CLK_TMR0_CM_A 0x00002000ul
  130. #define PDL_TMR_CLK_TMR2_CM_A 0x00004000ul
  131. /* A/D trigger control */
  132. #define PDL_TMR_ADC_TRIGGER_DISABLE 0x00008000ul
  133. #define PDL_TMR_ADC_TRIGGER_ENABLE 0x00010000ul
  134. /* Counter clearing options */
  135. #define PDL_TMR_CLEAR_DISABLE 0x00020000ul
  136. #define PDL_TMR_CLEAR_CM_A 0x00040000ul
  137. #define PDL_TMR_CLEAR_CM_B 0x00080000ul
  138. #define PDL_TMR_CLEAR_RESET_RISING 0x00100000ul
  139. #define PDL_TMR_CLEAR_RESET_HIGH 0x00200000ul
  140. /* DTC CMA trigger control */
  141. #define PDL_TMR_CM_A_DTC_TRIGGER_DISABLE 0x00400000ul
  142. #define PDL_TMR_CM_A_DTC_TRIGGER_ENABLE 0x00800000ul
  143. /* DTC CMB trigger control */
  144. #define PDL_TMR_CM_B_DTC_TRIGGER_DISABLE 0x01000000ul
  145. #define PDL_TMR_CM_B_DTC_TRIGGER_ENABLE 0x02000000ul
  146. /* Output control options */
  147. #define PDL_TMR_OUTPUT_IGNORE_CM_A 0x01u
  148. #define PDL_TMR_OUTPUT_LOW_CM_A 0x02u
  149. #define PDL_TMR_OUTPUT_HIGH_CM_A 0x04u
  150. #define PDL_TMR_OUTPUT_INV_CM_A 0x08u
  151. #define PDL_TMR_OUTPUT_IGNORE_CM_B 0x10u
  152. #define PDL_TMR_OUTPUT_LOW_CM_B 0x20u
  153. #define PDL_TMR_OUTPUT_HIGH_CM_B 0x40u
  154. #define PDL_TMR_OUTPUT_INV_CM_B 0x80u
  155. /* Channels and units */
  156. #define PDL_TMR_TMR0 0
  157. #define PDL_TMR_TMR1 1
  158. #define PDL_TMR_TMR2 2
  159. #define PDL_TMR_TMR3 3
  160. #define PDL_TMR_UNIT0 4
  161. #define PDL_TMR_UNIT1 5
  162. /* Period or frequency selection */
  163. #define PDL_TMR_PERIOD 0x00000001ul
  164. #define PDL_TMR_FREQUENCY 0x00000002ul
  165. /* Output pin control */
  166. #define PDL_TMR_OUTPUT_HIGH 0x00000004ul
  167. #define PDL_TMR_OUTPUT_LOW 0x00000008ul
  168. #define PDL_TMR_OUTPUT_OFF 0x00000010ul
  169. #define PDL_TMR_OUTPUT_ENABLE 0x00000020ul
  170. #define PDL_TMR_OUTPUT_DISABLE 0x00000040ul
  171. /* ADC trigger control */
  172. #define PDL_TMR_ADC_TRIGGER_ON 0x00000080ul
  173. #define PDL_TMR_ADC_TRIGGER_OFF 0x00000100ul
  174. /* Pulse DTC trigger control */
  175. #define PDL_TMR_PULSE_DTC_TRIGGER_DISABLE 0x00000200ul
  176. #define PDL_TMR_PULSE_DTC_TRIGGER_ENABLE 0x00000400ul
  177. /* Period DTC trigger control */
  178. #define PDL_TMR_PERIOD_DTC_TRIGGER_DISABLE 0x00000800ul
  179. #define PDL_TMR_PERIOD_DTC_TRIGGER_ENABLE 0x00001000ul
  180. /* CPU control */
  181. #define PDL_TMR_CPU_ON 0x00002000ul
  182. #define PDL_TMR_CPU_OFF 0x00004000ul
  183. /* Timer counter control */
  184. #define PDL_TMR_STOP 0x00008000ul
  185. #define PDL_TMR_START 0x00010000ul
  186. /* Register selections */
  187. #define PDL_TMR_COUNTER 0x00020000ul
  188. #define PDL_TMR_TIME_CONSTANT_A 0x00040000ul
  189. #define PDL_TMR_TIME_CONSTANT_B 0x00080000ul
  190. #endif
  191. /* End of file */