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 * File-scope definitions
26 ************************************************************************************************/
27
28#define STEERING_GPIO_DEF(PORT, PIN) \
29 { .port = GPIO_PORT_##PORT, .pin = PIN }
30
31/************************************************************************************************
32 * Steering CAN definitions
33 ************************************************************************************************/
34
36#define GPIO_STEERING_CAN_RX STEERING_GPIO_DEF(B, 8)
37
39#define GPIO_STEERING_CAN_TX STEERING_GPIO_DEF(B, 9)
40
41/************************************************************************************************
42 * Button definitions
43 ************************************************************************************************/
44
46#define GPIO_STEERING_LEFT_TURN_BUTTON STEERING_GPIO_DEF(A, 7)
47
49#define GPIO_STEERING_RIGHT_TURN_BUTTON STEERING_GPIO_DEF(E, 0)
50
52#define GPIO_STEERING_HAZARDS_BUTTON STEERING_GPIO_DEF(C, 13)
53
55#define GPIO_STEERING_NEUTRAL_BUTTON STEERING_GPIO_DEF(C, 15)
56
58#define GPIO_STEERING_DRIVE_BUTTON STEERING_GPIO_DEF(C, 14)
59
61#define GPIO_STEERING_REVERSE_BUTTON STEERING_GPIO_DEF(C, 1)
62
64#define GPIO_STEERING_HORN_BUTTON STEERING_GPIO_DEF(E, 1)
65
67#define GPIO_STEERING_REGEN_BUTTON STEERING_GPIO_DEF(C, 3)
68
70#define GPIO_STEERING_CC_UP_BUTTON STEERING_GPIO_DEF(C, 5)
71
73#define GPIO_STEERING_CC_DOWN_BUTTON STEERING_GPIO_DEF(B, 1)
74
75/************************************************************************************************
76 * LED turn signals
77 ************************************************************************************************/
78
80#define GPIO_STEERING_LEFT_TURN_LED STEERING_GPIO_DEF(A, 5)
81
83#define GPIO_STEERING_RIGHT_TURN_LED STEERING_GPIO_DEF(B, 7)
84
85/************************************************************************************************
86 * Display Control config
87 ************************************************************************************************/
88
90#define GPIO_STEERING_DISPLAY_CTRL STEERING_GPIO_DEF(C, 6)
91
92#define GPIO_STEERING_DISPLAY_BACKLIGHT_CTRL STEERING_GPIO_DEF(A, 1)
93
94/************************************************************************************************
95 * Display LTDC Config
96 ************************************************************************************************/
97#define GPIO_STEERING_BACKLIGHT STEERING_GPIO_DEF(A, 1)
98
100#define GPIO_STEERING_DISPLAY_LTDC_CLOCK STEERING_GPIO_DEF(A, 4)
101
103#define GPIO_STEERING_DISPLAY_LTDC_HSYNC STEERING_GPIO_DEF(C, 2)
104
106#define GPIO_STEERING_DISPLAY_LTDC_VSYNC STEERING_GPIO_DEF(B, 11)
107
109#define GPIO_STEERING_DISPLAY_LTDC_DE STEERING_GPIO_DEF(C, 0)
110
112#define GPIO_STEERING_DISPLAY_LTDC_RED_PINS \
113 { \
114 {}, /* R0 */ \
115 {}, /* R1 */ \
116 STEERING_GPIO_DEF(E, 15), /* R2 */ \
117 STEERING_GPIO_DEF(D, 8), /* R3 */ \
118 STEERING_GPIO_DEF(D, 9), /* R4 */ \
119 STEERING_GPIO_DEF(D, 10), /* R5 */ \
120 {}, /* R6 */ \
121 {} /* R7 */ \
122 }
123
125#define GPIO_STEERING_DISPLAY_LTDC_GREEN_PINS \
126 { \
127 {}, /* G0 */ \
128 {}, /* G1 */ \
129 STEERING_GPIO_DEF(E, 9), /* G2 */ \
130 STEERING_GPIO_DEF(E, 10), /* G3 */ \
131 STEERING_GPIO_DEF(E, 11), /* G4 */ \
132 STEERING_GPIO_DEF(E, 12), /* G5 */ \
133 {}, /* G6 */ \
134 {} /* G7 */ \
135 }
136
138#define GPIO_STEERING_DISPLAY_LTDC_BLUE_PINS \
139 { \
140 {}, /* B0 */ \
141 {}, /* B1 */ \
142 STEERING_GPIO_DEF(D, 14), /* B2 */ \
143 STEERING_GPIO_DEF(D, 15), /* B3 */ \
144 STEERING_GPIO_DEF(D, 0), /* B4 */ \
145 STEERING_GPIO_DEF(D, 1), /* B5 */ \
146 STEERING_GPIO_DEF(B, 0), /* B6 */ \
147 STEERING_GPIO_DEF(E, 4) /* B7 */ \
148 }
149
150/************************************************************************************************
151 * RGB buttons
152 ************************************************************************************************/
153
155#define GPIO_STEERING_RGB_LIGHTS_PWM_PIN STEERING_GPIO_DEF(A, 2)
156
157/************************************************************************************************
158 * Buzzer
159 ************************************************************************************************/
160
162#define GPIO_STEERING_BUZZER_PWM_PIN STEERING_GPIO_DEF(A, 6)
163