From fa6f69cab4d65230b5178f8cfd6b74805adf8cf9 Mon Sep 17 00:00:00 2001 From: kirbylife Date: Wed, 23 Nov 2022 23:07:44 -0600 Subject: [PATCH] Now the led blink --- src/main.rs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 649be07..8ea7370 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,32 @@ +#![feature(asm_experimental_arch)] #![no_std] #![no_main] +use core::arch::asm; +use core::ptr::{read_volatile, write_volatile}; + +const DDRB: *mut u8 = 0x24 as *mut u8; +const PORTB: *mut u8 = 0x25 as *mut u8; + +const CPU_SPEED: u32 = 16_000_000; + #[no_mangle] -pub extern "C" fn main() {} +pub extern "C" fn main() -> ! { + unsafe { write_volatile(DDRB, 0b11111111) }; + + loop { + unsafe { write_volatile(PORTB, 0b00000000) }; + sleep(1); + unsafe { write_volatile(PORTB, 0b00100000) }; + sleep(1); + } +} + +fn sleep(time: u32) { + for _ in 0..(CPU_SPEED / 10 * time) { + unsafe { asm!("nop") } + } +} #[panic_handler] fn panic(_info: &::core::panic::PanicInfo) -> ! {