Paparazzi UAS  v5.0.5_stable-7-g4b8bbb7
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
my_debug_servo.h
Go to the documentation of this file.
1 #ifndef MY_DEBUG_SERVO_H
2 #define MY_DEBUG_SERVO_H
3 
4 #include <libopencm3/stm32/f1/gpio.h>
5 #include <libopencm3/stm32/f1/rcc.h>
6 
7 /* using servo 2 connector as debug */
8 
9 #define DEBUG_S1_TOGGLE() { GPIOC_ODR ^= GPIO6; }
10 #define DEBUG_S1_ON() { GPIOC_BSRR = GPIO6; }
11 #define DEBUG_S1_OFF() { GPIOC_BRR = GPIO6; }
12 
13 #define DEBUG_S2_TOGGLE() { GPIOC_ODR ^= GPIO7; }
14 #define DEBUG_S2_ON() { GPIOC_BSRR = GPIO7; }
15 #define DEBUG_S2_OFF() { GPIOC_BRR = GPIO7; }
16 
17 #define DEBUG_S3_TOGGLE() { GPIOC_ODR ^= GPIO8; }
18 #define DEBUG_S3_ON() { GPIOC_BSRR = GPIO8; }
19 #define DEBUG_S3_OFF() { GPIOC_BRR = GPIO8; }
20 
21 #define DEBUG_S4_TOGGLE() { GPIOC_ODR ^= GPIO9; }
22 #define DEBUG_S4_ON() { GPIOC_BSRR = GPIO9; }
23 #define DEBUG_S4_OFF() { GPIOC_BRR = GPIO9; }
24 
25 #define DEBUG_S5_TOGGLE() { GPIOB_ODR ^= GPIO8; }
26 #define DEBUG_S5_ON() { GPIOB_BSRR = GPIO8; }
27 #define DEBUG_S5_OFF() { GPIOB_BRR = GPIO8; }
28 
29 #define DEBUG_S6_TOGGLE() { GPIOB_ODR ^= GPIO9; }
30 #define DEBUG_S6_ON() { GPIOB_BSRR = GPIO9; }
31 #define DEBUG_S6_OFF() { GPIOB_BRR = GPIO9; }
32 
33 
34 
35 #define DEBUG_SERVO1_INIT() { \
36  /* S1: PC6 S2: PC7 S3: PC8 */ \
37  GPIOC_BSRR = GPIO6 | GPIO7 | GPIO8 ; \
38  rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPCEN); \
39  gpio_set_mode(GPIOC, GPIO_MODE_OUTPUT_50_MHZ, \
40  GPIO_CNF_OUTPUT_PUSHPULL, GPIO6 | GPIO7 | GPIO8); \
41  DEBUG_S1_OFF(); \
42  DEBUG_S2_OFF(); \
43  DEBUG_S3_OFF(); \
44  }
45 
46 #define DEBUG_SERVO2_INIT() { \
47  /* S4: PC9 */ \
48  GPIOC_BSRR = GPIO9; \
49  rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPCEN); \
50  gpio_set_mode(GPIOC, GPIO_MODE_OUTPUT_50_MHZ, \
51  GPIO_CNF_OUTPUT_PUSHPULL, GPIO9); \
52  /* S5: PB8 and S6: PB9 */ \
53  GPIOB_BSRR = GPIO8 | GPIO9; \
54  rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPBEN); \
55  gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, \
56  GPIO_CNF_OUTPUT_PUSHPULL, GPIO8 | GPIO9); \
57  DEBUG_S4_OFF(); \
58  DEBUG_S5_OFF(); \
59  DEBUG_S6_OFF(); \
60  }
61 
62 
63 #endif /* MY_DEBUG_SERVO_H */