Midnight Sun Firmware
Loading...
Searching...
No Matches
steering_hw_defs.h
1#pragma once
2
3/************************************************************************************************
4 * @file steering_hw_defs.h
5 *
6 * @brief Header file for Steering hardware definitions
7 *
8 * @date 2025-01-12
9 * @author Midnight Sun Team #24 - MSXVI
10 ************************************************************************************************/
11
12/* Standard library Headers */
13
14/* Inter-component Headers */
15
16/* Intra-component Headers */
17
24/************************************************************************************************
25 * Steering CAN definitions
26 ************************************************************************************************/
27
29#define STEERING_CAN_RX \
30 { .port = GPIO_PORT_B, .pin = 8 }
31
33#define STEERING_CAN_TX \
34 { .port = GPIO_PORT_B, .pin = 9 }
35
36/************************************************************************************************
37 * Button definitions
38 ************************************************************************************************/
39
41#define STEERING_LEFT_TURN_BUTTON \
42 { .port = GPIO_PORT_B, .pin = 12 }
43
45#define STEERING_RIGHT_TURN_BUTTON \
46 { .port = GPIO_PORT_A, .pin = 6 }
47
49#define STEERING_HAZARDS_BUTTON \
50 { .port = GPIO_PORT_C, .pin = 5 }
51
53#define STEERING_NEUTRAL_BUTTON \
54 { .port = GPIO_PORT_B, .pin = 2 }
55
57#define STEERING_DRIVE_BUTTON \
58 { .port = GPIO_PORT_B, .pin = 1 }
59
61#define STEERING_REVERSE_BUTTON \
62 { .port = GPIO_PORT_E, .pin = 7 }
63
65#define STEERING_HORN_BUTTON \
66 { .port = GPIO_PORT_A, .pin = 7 }
67
69#define STEERING_REGEN_BUTTON \
70 { .port = GPIO_PORT_E, .pin = 8 }
71
73#define STEERING_CC_UP_BUTTON \
74 { .port = GPIO_PORT_B, .pin = 13 }
75
77#define STEERING_CC_DOWN_BUTTON \
78 { .port = GPIO_PORT_B, .pin = 14 }
79
80/************************************************************************************************
81 * LED turn signals
82 ************************************************************************************************/
83
85#define STEERING_LEFT_TURN_LED \
86 { .port = GPIO_PORT_B, .pin = 6 }
87
89#define STEERING_RIGHT_TURN_LED \
90 { .port = GPIO_PORT_B, .pin = 7 }
91
92/************************************************************************************************
93 * Display Control config
94 ************************************************************************************************/
95
97#define STEERING_DISPLAY_CTRL \
98 { .port = GPIO_PORT_A, .pin = 0 }
100
101/************************************************************************************************
102 * Display LTDC Config
103 ************************************************************************************************/
104
106#define STEERING_DISPLAY_LTDC_CLOCK \
107 { .port = GPIO_PORT_A, .pin = 4 }
108
110#define STEERING_DISPLAY_LTDC_HSYNC \
111 { .port = GPIO_PORT_C, .pin = 2 }
112
114#define STEERING_DISPLAY_LTDC_VSYNC \
115 { .port = GPIO_PORT_B, .pin = 11 }
116
118#define STEERING_DISPLAY_LTDC_DE \
119 { .port = GPIO_PORT_C, .pin = 0 }
120
122#define STEERING_DISPLAY_LTDC_RED_PINS \
123 { \
124 {}, /* R0 */ \
125 {}, /* R1 */ \
126 { .port = GPIO_PORT_E, .pin = 15 }, /* R2 */ \
127 { .port = GPIO_PORT_D, .pin = 8 }, /* R3 */ \
128 { .port = GPIO_PORT_D, .pin = 9 }, /* R4 */ \
129 { .port = GPIO_PORT_D, .pin = 10 }, /* R5 */ \
130 { .port = GPIO_PORT_E, .pin = 3 }, /* R6 */ \
131 { \
132 .port = GPIO_PORT_E, .pin = 2 \
133 } /* R7 */ \
134 }
135
137#define STEERING_DISPLAY_LTDC_GREEN_PINS \
138 { \
139 {}, /* G0 */ \
140 {}, /* G1 */ \
141 { .port = GPIO_PORT_E, .pin = 9 }, /* G2 */ \
142 { .port = GPIO_PORT_E, .pin = 10 }, /* G3 */ \
143 { .port = GPIO_PORT_E, .pin = 11 }, /* G4 */ \
144 { .port = GPIO_PORT_E, .pin = 12 }, /* G5 */ \
145 { .port = GPIO_PORT_E, .pin = 6 }, /* G6 */ \
146 { \
147 .port = GPIO_PORT_E, .pin = 5 \
148 } /* G7 */ \
149 }
150
152#define STEERING_DISPLAY_LTDC_BLUE_PINS \
153 { \
154 {}, /* B0 */ \
155 {}, /* B1 */ \
156 { .port = GPIO_PORT_D, .pin = 14 }, /* B2 */ \
157 { .port = GPIO_PORT_D, .pin = 15 }, /* B3 */ \
158 { .port = GPIO_PORT_D, .pin = 0 }, /* B4 */ \
159 { .port = GPIO_PORT_D, .pin = 1 }, /* B5 */ \
160 { .port = GPIO_PORT_B, .pin = 0 }, /* B6 */ \
161 { \
162 .port = GPIO_PORT_E, .pin = 4 \
163 } /* B7 */ \
164 }
165
166/************************************************************************************************
167 * RGB buttons
168 ************************************************************************************************/
169
171#define STEERING_RGB_LIGHTS_PWM_PIN \
172 { .port = GPIO_PORT_A, .pin = 2 }
173
174/************************************************************************************************
175 * Buzzer
176 ************************************************************************************************/
177
179#define STEERING_BUZZER_PWM_PIN \
180 { .port = GPIO_PORT_D, .pin = 12 }
181