13#define PIN_LIGHT1_RED 10
14#define PIN_LIGHT1_GREEN 4
15#define PIN_LIGHT2_RED 5
16#define PIN_LIGHT2_GREEN 3
17#define PIN_LIGHT3_RED 2
18#define PIN_LIGHT3_GREEN 1
19#define PIN_LIGHT4_RED 14
20#define PIN_LIGHT4_GREEN 13
TrafficLight Light[NUM_LIGHTS]
Array of Traffic light structures.
Definition lights.c:28
#define NUM_LIGHTS
Total number of traffic light in the system.
Definition lights.h:23
void lights_set_green(int lightNum1, int lightNum2)
Transition a pair of traffic lights to GREEN.
Definition lights.c:96
void map_lights(void)
Initialize and map traffic light configuration.
Definition lights.c:41
void lights_set_initial_state(void)
Set all traffic lights to their initial states.
Definition lights.c:182
void lights_update(const TrafficLight *light)
Update traffic light LEDs based on the current light state.
Definition lights.c:62
uint32_t lights_set_yellow(int lightNum1, int lightNum2)
Transition a pair of traffic lights from GREEN to YELLOW.
Definition lights.c:129
void lights_init(void)
Initializes GPIO output pins.
Definition lights.c:198
uint32_t lights_set_red(int lightNum1, int lightNum2)
Transition a pair of traffic lights from YELLOW to RED.
Definition lights.c:164
LightState
Enumeration of possible traffic light states.
Definition lights.h:26
@ GREEN
Definition lights.h:29
@ OFF
Definition lights.h:30
@ YELLOW
Definition lights.h:28
@ RED
Definition lights.h:27
Traffic light configuration and runtime state.
Definition lights.h:34
int redPin
Definition lights.h:37
uint32_t timerEnd
Definition lights.h:39
int greenPin
Definition lights.h:38
LightState state
Definition lights.h:35
int carCount
Definition lights.h:36