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