feat: initial version

This commit is contained in:
2026-06-26 18:33:30 +02:00
commit 1848a32631
13 changed files with 1831 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
#![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.gpio0,
pins.gpio1,
pins.gpio2,
pins.gpio3,
pins.gpio4,
pins.gpio5,
pins.gpio6,
pins.gpio7,
pins.gpio8,
pins.gpio9,
pins.gpio10,
pins.gpio11,
);
traffic_controller.phase_start = timer.get_counter().ticks();
traffic_controller.apply_phase(&PHASES[0]);
loop {
traffic_controller.read_inputs();
traffic_controller.execute_cycle(&timer);
}
}