From 8f9bc49bb40e2972cf0c0bf1b61eb8127a9397df Mon Sep 17 00:00:00 2001 From: Brian Cully Date: Thu, 4 Aug 2022 07:26:35 -0400 Subject: Move LED to separate module. --- src/main.rs | 45 +++++++++++---------------------------------- 1 file changed, 11 insertions(+), 34 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 8d95d00..aee0767 100755 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,13 @@ #![no_std] #![no_main] +mod led; + use core::arch::global_asm; use gd32vf103_pac::Peripherals; +use led::LED; + global_asm!(include_str!("boot.S")); #[no_mangle] @@ -11,44 +15,17 @@ fn main(_hartid: usize) -> ! { // let peripherals = Peripherals::take().unwrap(); let peripherals = unsafe { Peripherals::steal() }; - let rcu = peripherals.RCU; - // enable RCU_GPIOA - rcu.apb2en.write(|w| { - w.paen().set_bit() - }); - - let gpio = peripherals.GPIOA; - // led is gpioa pin 7 output push/pull 50mhz - gpio.ctl0.write(|w| unsafe { - // output mode, push-pull - w.ctl7().bits(0b00); - // 50 mhz output rate - w.md7().bits(0b11); - w - }); - - let mut led_on = false; + let led = LED::new(&peripherals); loop { - if led_on { - gpio.bc.write(|w| w.cr7().set_bit()); - if gpio.octl.read().octl7().bit() { - panic!("not set"); - } - } else { - gpio.bop.write(|w| w.bop7().set_bit()); - if !gpio.octl.read().octl7().bit() { - panic!("set"); - } - } - led_on = !led_on; - - let mut a = 0; - for _ in 1..100_000 { - a = gpio.octl.read().bits(); - } + led.toggle(); + delay(); } } +fn delay() { + for _ in 1..100_000 {} +} + #[panic_handler] fn panic(info: &core::panic::PanicInfo) -> ! { if let Some(loc) = info.location() { -- cgit v1.2.3