Update target.c
[betaflight.git] / src / main / target / AIORACERF3 / target.c
blobe6352f01a643af132b890ba0847c44bd4fc12439
1 /*
2 * This file is part of Cleanflight.
4 * Cleanflight is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * Cleanflight is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with Cleanflight. If not, see <http://www.gnu.org/licenses/>.
18 #include <stdint.h>
20 #include <platform.h>
21 #include "drivers/io.h"
22 #include "drivers/pwm_mapping.h"
24 const uint16_t multiPPM[] = {
25 PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input
27 PWM2 | (MAP_TO_MOTOR_OUTPUT << 8),
28 PWM3 | (MAP_TO_MOTOR_OUTPUT << 8),
29 PWM4 | (MAP_TO_MOTOR_OUTPUT << 8),
30 PWM5 | (MAP_TO_MOTOR_OUTPUT << 8),
31 PWM6 | (MAP_TO_MOTOR_OUTPUT << 8),
32 PWM7 | (MAP_TO_MOTOR_OUTPUT << 8),
33 PWM8 | (MAP_TO_MOTOR_OUTPUT << 8),
34 PWM9 | (MAP_TO_MOTOR_OUTPUT << 8),
35 PWM10 | (MAP_TO_MOTOR_OUTPUT << 8),
36 PWM11 | (MAP_TO_MOTOR_OUTPUT << 8),
37 0xFFFF
40 const uint16_t multiPWM[] = {
41 PWM2 | (MAP_TO_MOTOR_OUTPUT << 8),
42 PWM3 | (MAP_TO_MOTOR_OUTPUT << 8),
43 PWM4 | (MAP_TO_MOTOR_OUTPUT << 8),
44 PWM5 | (MAP_TO_MOTOR_OUTPUT << 8),
45 PWM6 | (MAP_TO_MOTOR_OUTPUT << 8),
46 PWM7 | (MAP_TO_MOTOR_OUTPUT << 8),
47 PWM8 | (MAP_TO_MOTOR_OUTPUT << 8),
48 PWM9 | (MAP_TO_MOTOR_OUTPUT << 8),
49 PWM10 | (MAP_TO_MOTOR_OUTPUT << 8),
50 PWM11 | (MAP_TO_MOTOR_OUTPUT << 8),
51 0xFFFF
54 const uint16_t airPPM[] = {
55 PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input
56 PWM2 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #1
57 PWM3 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #2
58 PWM4 | (MAP_TO_SERVO_OUTPUT << 8), // servo #1
59 PWM5 | (MAP_TO_SERVO_OUTPUT << 8),
60 PWM6 | (MAP_TO_SERVO_OUTPUT << 8),
61 PWM7 | (MAP_TO_SERVO_OUTPUT << 8),
62 PWM8 | (MAP_TO_SERVO_OUTPUT << 8),
63 PWM9 | (MAP_TO_SERVO_OUTPUT << 8),
64 PWM10 | (MAP_TO_SERVO_OUTPUT << 8),
65 PWM11 | (MAP_TO_SERVO_OUTPUT << 8),
66 0xFFFF
69 const uint16_t airPWM[] = {
70 PWM2 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #1
71 PWM3 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #2
72 PWM4 | (MAP_TO_SERVO_OUTPUT << 8), // servo #1
73 PWM5 | (MAP_TO_SERVO_OUTPUT << 8),
74 PWM6 | (MAP_TO_SERVO_OUTPUT << 8),
75 PWM7 | (MAP_TO_SERVO_OUTPUT << 8),
76 PWM8 | (MAP_TO_SERVO_OUTPUT << 8),
77 PWM9 | (MAP_TO_SERVO_OUTPUT << 8),
78 PWM10 | (MAP_TO_SERVO_OUTPUT << 8),
79 PWM11 | (MAP_TO_SERVO_OUTPUT << 8),
80 0xFFFF
83 const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
84 // PPM / UART2 RX
85 { TIM8, IO_TAG(PA15), TIM_Channel_1, TIM8_CC_IRQn, 0, IOCFG_AF_PP_PD, GPIO_AF_2 }, // PPM
86 { TIM3, IO_TAG(PB1), TIM_Channel_4, TIM3_IRQn, 1, IOCFG_AF_PP, GPIO_AF_2, 0}, // PWM1
87 { TIM3, IO_TAG(PA7), TIM_Channel_2, TIM3_IRQn, 1, IOCFG_AF_PP, GPIO_AF_2, 0}, // PWM2
88 { TIM15, IO_TAG(PA2), TIM_Channel_1, TIM1_BRK_TIM15_IRQn, 1, IOCFG_AF_PP, GPIO_AF_9, 0}, // PWM3
89 { TIM2, IO_TAG(PA1), TIM_Channel_2, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_1, 0}, // PWM4
90 { TIM3, IO_TAG(PB0), TIM_Channel_3, TIM3_IRQn, 1, IOCFG_AF_PP, GPIO_AF_2, 0}, // PWM5
91 { TIM3, IO_TAG(PA6), TIM_Channel_1, TIM3_IRQn, 1, IOCFG_AF_PP, GPIO_AF_2, 0}, // PWM6
92 { TIM15, IO_TAG(PA3), TIM_Channel_2, TIM1_BRK_TIM15_IRQn, 1, IOCFG_AF_PP, GPIO_AF_9, 0}, // PWM7
93 { TIM2, IO_TAG(PA0), TIM_Channel_1, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_1, 0}, // PWM8
94 { TIM2, IO_TAG(PB10), TIM_Channel_3, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_1 }, // RC_CH4 - PB10 - *TIM2_CH3, UART3_TX (AF7)
95 { TIM2, IO_TAG(PB11), TIM_Channel_4, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_1 }, // RC_CH3 - PB11 - *TIM2_CH4, UART3_RX (AF7)
96 { TIM1, IO_TAG(PA8), TIM_Channel_1, TIM1_CC_IRQn, 1, IOCFG_AF_PP, GPIO_AF_6 }, // GPIO_TIMER / LED_STRIP