r_pdl_mtu2_rx62nxx.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. /*""FILE COMMENT""*******************************************************
  2. * System Name : Multi-function Timer Pulse Unit API for RX62N
  3. * File Name : r_pdl_MTU2_RX62Nxx.h
  4. * Version : 1.02
  5. * Contents : MTU2 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_MTU2_RX62Nxx_H
  23. #define R_PDL_MTU2_RX62Nxx_H
  24. #define MTU2_UNITS 2
  25. #define MTU2_CHANNELS_PER_UNIT 6
  26. #define MTU2_CHANNELS (uint8_t)(MTU2_UNITS * MTU2_CHANNELS_PER_UNIT)
  27. /* Callback function storage */
  28. extern VoidCallBackFunc rpdl_MTU2_func1_callback_func[MTU2_CHANNELS];
  29. extern VoidCallBackFunc rpdl_MTU2_func2_callback_func[MTU2_CHANNELS];
  30. extern VoidCallBackFunc rpdl_MTU2_func3_callback_func[MTU2_CHANNELS];
  31. extern VoidCallBackFunc rpdl_MTU2_func4_callback_func[MTU2_CHANNELS];
  32. extern VoidCallBackFunc rpdl_MTU2_TGRE_callback_func[MTU2_CHANNELS];
  33. extern VoidCallBackFunc rpdl_MTU2_TGRF_callback_func[MTU2_CHANNELS];
  34. extern VoidCallBackFunc rpdl_MTU2_Overflow_callback_func[MTU2_CHANNELS];
  35. extern VoidCallBackFunc rpdl_MTU2_Underflow_callback_func[MTU2_CHANNELS];
  36. typedef struct R_MTU2_Create_parameters
  37. {
  38. uint32_t data2;
  39. uint32_t data3;
  40. uint32_t data4;
  41. uint16_t data5;
  42. uint32_t data6;
  43. uint32_t data7;
  44. uint32_t data8;
  45. uint16_t data9;
  46. uint16_t data10;
  47. uint16_t data11;
  48. uint16_t data12;
  49. uint16_t data13;
  50. uint16_t data14;
  51. uint16_t data15;
  52. uint16_t data16;
  53. uint16_t data17;
  54. uint16_t data18;
  55. VoidCallBackFunc func1;
  56. VoidCallBackFunc func2;
  57. VoidCallBackFunc func3;
  58. VoidCallBackFunc func4;
  59. uint8_t data19;
  60. VoidCallBackFunc func5;
  61. VoidCallBackFunc func6;
  62. VoidCallBackFunc func7;
  63. VoidCallBackFunc func8;
  64. uint8_t data20;
  65. } R_MTU2_Create_structure;
  66. typedef struct R_MTU2_ControlChannel_parameters
  67. {
  68. uint8_t data2;
  69. uint16_t data3;
  70. uint16_t data4;
  71. uint16_t data5;
  72. uint16_t data6;
  73. uint16_t data7;
  74. uint16_t data8;
  75. uint16_t data9;
  76. uint16_t data10;
  77. uint16_t data11;
  78. uint16_t data12;
  79. } R_MTU2_ControlChannel_structure;
  80. typedef struct R_MTU2_ControlUnit_parameters
  81. {
  82. uint16_t data2;
  83. uint32_t data3;
  84. uint32_t data4;
  85. uint16_t data5;
  86. uint32_t data6;
  87. uint8_t data7;
  88. uint16_t data8;
  89. uint16_t data9;
  90. uint16_t data10;
  91. } R_MTU2_ControlUnit_structure;
  92. /* Library prototypes */
  93. bool R_MTU2_SetAll(
  94. const uint16_t
  95. );
  96. bool R_MTU2_CreateAll(
  97. const uint8_t,
  98. R_MTU2_Create_structure * const
  99. );
  100. bool R_MTU2_DestroyAll(
  101. const uint8_t
  102. );
  103. bool R_MTU2_ControlChannelAll(
  104. const uint8_t,
  105. R_MTU2_ControlChannel_structure * const
  106. );
  107. bool R_MTU2_ControlUnitAll(
  108. const uint8_t,
  109. R_MTU2_ControlUnit_structure * const
  110. );
  111. bool R_MTU2_ReadChannelAll(
  112. const uint8_t,
  113. volatile uint8_t * const,
  114. volatile uint16_t * const,
  115. volatile uint16_t * const,
  116. volatile uint16_t * const,
  117. volatile uint16_t * const,
  118. volatile uint16_t * const,
  119. volatile uint16_t * const,
  120. volatile uint16_t * const
  121. );
  122. bool R_MTU2_ReadUnitAll(
  123. const uint8_t,
  124. volatile uint16_t * const,
  125. volatile uint8_t * const
  126. );
  127. bool ReturnFalse(void);
  128. void R_MTU2_Create_load_defaults(R_MTU2_Create_structure * const);
  129. /* Macro definitions */
  130. #define R_MTU2_Set(a) \
  131. ( \
  132. R_MTU2_SetAll( (a) ) \
  133. )
  134. #define R_MTU2_Create(a, b) \
  135. ( \
  136. ( (a) < MTU2_CHANNELS ) ? \
  137. R_MTU2_CreateAll( (a), (b) ) : \
  138. ReturnFalse() \
  139. )
  140. #define R_MTU2_ControlChannel(a, b) \
  141. ( \
  142. ( (a) < MTU2_CHANNELS ) ? \
  143. R_MTU2_ControlChannelAll( (a), (b) ) : \
  144. ReturnFalse() \
  145. )
  146. #define R_MTU2_ControlUnit(a, b) \
  147. ( \
  148. ( (a) < MTU2_UNITS ) ? \
  149. R_MTU2_ControlUnitAll( (a), (b) ) : \
  150. ReturnFalse() \
  151. )
  152. #define R_MTU2_ReadChannel(a, b, c, d, e, f, g, h, i) \
  153. ( \
  154. ( (a) < MTU2_CHANNELS ) ? \
  155. R_MTU2_ReadChannelAll( (a), (b), (c), (d), (e), (f), (g), (h), (i) ) : \
  156. ReturnFalse() \
  157. )
  158. #define R_MTU2_ReadUnit(a, b, c) \
  159. ( \
  160. ( (a) < MTU2_UNITS ) ? \
  161. R_MTU2_ReadUnitAll( (a), (b), (c) ) : \
  162. ReturnFalse() \
  163. )
  164. #define R_MTU2_Destroy(a) \
  165. ( \
  166. ( (a) < MTU2_UNITS ) ? \
  167. R_MTU2_DestroyAll( (a) ) : \
  168. ReturnFalse() \
  169. )
  170. #endif
  171. /* End of file */