const std = @import("std"); const microzig = @import("microzig"); const rp2xxx = microzig.hal; const time = rp2xxx.time; const LOW = 0; const HIGH = 100; const WRAP = 100; const SLEEP_MS = 10; // Compile-time pin configuration const pin_config = rp2xxx.pins.GlobalConfiguration{ .GPIO17 = .{ .name = "led", .function = .PWM0_B, }, }; const pins = pin_config.pins(); pub fn main() !void { pin_config.apply(); pins.led.slice().set_wrap(WRAP); pins.led.slice().enable(); // duty cycle = level/wrap * 100 var invert: bool = true; while (true) { for (LOW..HIGH) |i| { pins.led.set_level(@truncate(i)); time.sleep_ms(SLEEP_MS); } pins.led.set_inverted(invert); invert = !invert; } }