Files
pico-traffic-control/src/main.rs
T
2026-06-26 18:54:00 +02:00

58 lines
1.1 KiB
Rust

#![no_std]
#![no_main]
mod boilerplate;
mod controller;
mod display;
mod lights;
mod phases;
use boilerplate::*;
use controller::*;
use phases::*;
use rp2040_hal::Clock;
use crate::display::DisplayModule;
#[rp2040_hal::entry]
fn main() -> ! {
let PicoParts {
timer,
pins,
i2c0,
mut resets,
clocks,
} = setup();
let mut display = {
let sda = pins.gpio16.reconfigure();
let scl = pins.gpio17.reconfigure();
let freq = clocks.system_clock.freq();
DisplayModule::new(sda, scl, i2c0, &mut resets, freq)
};
display.print("Hello Pico");
let mut traffic_controller = TrafficController::new(
pins.gpio2,
pins.gpio3,
pins.gpio4,
pins.gpio5,
pins.gpio6,
pins.gpio7,
pins.gpio8,
pins.gpio9,
pins.gpio10,
pins.gpio11,
pins.gpio12,
pins.gpio13,
);
traffic_controller.phase_start = timer.get_counter().ticks();
traffic_controller.apply_phase(&PHASES[0]);
loop {
traffic_controller.read_inputs();
traffic_controller.execute_cycle(&timer);
}
}