ChibiOS limitation is that only channels #1 and #2 could be used for input capture Could this be unified with getConfigForPin() method?
122 {
123 switch (hwPin) {
125 RETURN_ICU5(ICU_CHANNEL_1);
126 return false;
128 RETURN_ICU2(ICU_CHANNEL_2);
129 RETURN_ICU5(ICU_CHANNEL_2);
130 return false;
132 RETURN_ICU2(ICU_CHANNEL_3);
133 RETURN_ICU5(ICU_CHANNEL_3);
134 RETURN_ICU9(ICU_CHANNEL_1);
135 return false;
137 RETURN_ICU2(ICU_CHANNEL_4);
138 RETURN_ICU5(ICU_CHANNEL_4);
139 RETURN_ICU9(ICU_CHANNEL_2);
140 return false;
142 RETURN_ICU3(ICU_CHANNEL_1);
143 RETURN_ICU13(ICU_CHANNEL_1);
144 return false;
146 RETURN_ICU3(ICU_CHANNEL_2);
147 RETURN_ICU14(ICU_CHANNEL_1);
148 return false;
150 RETURN_ICU1(ICU_CHANNEL_1);
151 return false;
153 RETURN_ICU1(ICU_CHANNEL_2);
154 return false;
156 RETURN_ICU1(ICU_CHANNEL_3);
157 return false;
159 RETURN_ICU1(ICU_CHANNEL_4);
160 return false;
162 RETURN_ICU2(ICU_CHANNEL_1);
163 return false;
165 RETURN_ICU3(ICU_CHANNEL_3);
166 return false;
168 RETURN_ICU3(ICU_CHANNEL_4);
169 return false;
171 RETURN_ICU2(ICU_CHANNEL_2);
172 return false;
174 RETURN_ICU3(ICU_CHANNEL_1);
175 return false;
177 RETURN_ICU3(ICU_CHANNEL_2);
178 return false;
180 RETURN_ICU4(ICU_CHANNEL_1);
181 return false;
183 RETURN_ICU4(ICU_CHANNEL_2);
184 return false;
186 RETURN_ICU3(ICU_CHANNEL_3);
187 RETURN_ICU10(ICU_CHANNEL_1);
188 return false;
190 RETURN_ICU3(ICU_CHANNEL_4);
191 RETURN_ICU11(ICU_CHANNEL_1);
192 return false;
194 RETURN_ICU2(ICU_CHANNEL_3);
195 return false;
197 RETURN_ICU2(ICU_CHANNEL_4);
198 return false;
200 RETURN_ICU12(ICU_CHANNEL_1);
201 return false;
203 RETURN_ICU12(ICU_CHANNEL_2);
204 return false;
206 RETURN_ICU3(ICU_CHANNEL_1);
207 RETURN_ICU8(ICU_CHANNEL_1);
208 return false;
210 RETURN_ICU3(ICU_CHANNEL_2);
211 RETURN_ICU8(ICU_CHANNEL_2);
212 return false;
214 RETURN_ICU3(ICU_CHANNEL_3);
215 RETURN_ICU8(ICU_CHANNEL_3);
216 return false;
218 RETURN_ICU3(ICU_CHANNEL_4);
219 RETURN_ICU8(ICU_CHANNEL_4);
220 return false;
222 RETURN_ICU4(ICU_CHANNEL_1);
223 return false;
225 RETURN_ICU4(ICU_CHANNEL_2);
226 return false;
228 RETURN_ICU4(ICU_CHANNEL_3);
229 return false;
231 RETURN_ICU4(ICU_CHANNEL_4);
232 return false;
234 RETURN_ICU9(ICU_CHANNEL_1);
235 return false;
237 RETURN_ICU9(ICU_CHANNEL_2);
238 return false;
240 RETURN_ICU1(ICU_CHANNEL_1);
241 return false;
243 RETURN_ICU1(ICU_CHANNEL_2);
244 return false;
246 RETURN_ICU1(ICU_CHANNEL_3);
247 return false;
249 RETURN_ICU1(ICU_CHANNEL_4);
250 return false;
252 RETURN_ICU10(ICU_CHANNEL_1);
253 return false;
255 RETURN_ICU11(ICU_CHANNEL_1);
256 return false;
258 RETURN_ICU13(ICU_CHANNEL_1);
259 return false;
261 RETURN_ICU14(ICU_CHANNEL_1);
262 return false;
264 RETURN_ICU12(ICU_CHANNEL_1);
265 return false;
267 RETURN_ICU12(ICU_CHANNEL_2);
268 return false;
270 RETURN_ICU5(ICU_CHANNEL_1);
271 return false;
273 RETURN_ICU5(ICU_CHANNEL_2);
274 return false;
276 RETURN_ICU5(ICU_CHANNEL_3);
277 return false;
279 RETURN_ICU5(ICU_CHANNEL_4);
280 return false;
282 RETURN_ICU8(ICU_CHANNEL_4);
283 return false;
285 RETURN_ICU8(ICU_CHANNEL_1);
286 return false;
288 RETURN_ICU8(ICU_CHANNEL_2);
289 return false;
291 RETURN_ICU8(ICU_CHANNEL_3);
292 return false;
293
294 default:
295 return false;
296 }
297
298 return false;
299}