sylveos

Toy Operating System
Log | Files | Refs

commit 1a7a430a51a5a35a44787646617187c859fa5ac9
parent 0c7e16ca24bc194c3902be9b967bbcd2a1d62adc
Author: Sylvia Ivory <git@sivory.net>
Date:   Tue, 13 Jan 2026 13:50:36 -0800

Add lab 1

Diffstat:
Asrc/labs/lab1.zig | 49+++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/main.zig | 13++-----------
2 files changed, 51 insertions(+), 11 deletions(-)

diff --git a/src/labs/lab1.zig b/src/labs/lab1.zig @@ -0,0 +1,49 @@ +const gpio = @import("gpio.zig"); +const util = @import("util.zig"); + +const led0 = 20; +const led1 = 21; + +pub fn blink_1() void { + gpio.set_output(led0); + for (0..10) |_| { + gpio.set_on(led0); + util.delay_cycles(1000000); + gpio.set_off(led0); + util.delay_cycles(1000000); + } + gpio.set_on(led0); +} + +pub fn blink_2() void { + gpio.set_output(led0); + gpio.set_output(led1); + + for (0..10) |_| { + gpio.set_on(led0); + gpio.set_off(led1); + util.delay_cycles(3000000); + gpio.set_off(led0); + gpio.set_on(led1); + util.delay_cycles(3000000); + } +} + +pub fn loopback() void { + const input = 9; + const output = 10; + + gpio.set_output(led0); + gpio.set_input(input); + gpio.set_ouput(led1); + gpio.set_output(output); + + var v = false; + for (0..20) |_| { + gpio.write(led0, v); + gpio.write(output, v); + gpio.write(led1, gpio.read(input)); + util.delay_cycles(1500000); + v = !v; + } +} diff --git a/src/main.zig b/src/main.zig @@ -1,14 +1,5 @@ -const util = @import("util.zig"); -const gpio = @import("gpio.zig"); +const lab1 = @import("labs/lab1.zig"); pub fn main() void { - const led = 20; - gpio.set_output(led); - for (0..10) |_| { - gpio.set_on(led); - util.delay_cycles(1000000); - gpio.set_off(led); - util.delay_cycles(1000000); - } - gpio.set_on(led); + lab1.blink_1(); }