STM32 Traffic Control
Loading...
Searching...
No Matches
lights.h
Go to the documentation of this file.
1
5
6#ifndef LIGHTS_H_
7#define LIGHTS_H_
8
9#include <stdint.h>
10#include <stdbool.h>
11
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
21
23#define NUM_LIGHTS 4
24
26typedef enum {
32
34typedef struct {
37 int redPin;
39 uint32_t timerEnd;
41
44
45// Function Prototypes
46void map_lights(void);
47void lights_update(const TrafficLight *light);
48void lights_set_green(int lightNum1, int lightNum2);
49uint32_t lights_set_yellow(int lightNum1, int lightNum2);
50uint32_t lights_set_red(int lightNum1, int lightNum2);
52void lights_init(void);
53
54#endif /* LIGHTS_H_ */
55
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