ch32-dimmer-node/blinky.rs
2025-03-12 02:29:43 +01:00

53 lines
1.4 KiB
Rust

#![no_std]
#![no_main]
#![feature(type_alias_impl_trait)]
#![feature(impl_trait_in_assoc_type)]
use ch32_hal as hal;
use embassy_executor::Spawner;
use embassy_time::Timer;
use hal::gpio::{AnyPin, Level, Output, Pin};
use hal::println;
#[embassy_executor::task]
async fn blink(pin: AnyPin, interval_ms: u64) {
println!("blink task");
let mut led = Output::new(pin, Level::Low, Default::default());
loop {
println!("set high");
led.set_high();
Timer::after_millis(interval_ms).await;
println!("set low");
led.set_low();
Timer::after_millis(interval_ms).await;
}
}
#[embassy_executor::main(entry = "qingke_rt::entry")]
async fn main(spawner: Spawner) -> ! {
hal::debug::SDIPrint::enable();
let mut config = hal::Config::default();
config.rcc = hal::rcc::Config::SYSCLK_FREQ_48MHZ_HSI;
let p = hal::init(config);
println!("CHIP signature => {}", hal::signature::chip_id().name());
println!("Clocks {:?}", hal::rcc::clocks());
// let mut led = Output::new(p.PC4, Level::Low, Default::default());
spawner.spawn(blink(p.PC3.degrade(), 1500)).unwrap();
//spawner.spawn(blink(p.PD1.degrade(), 270)).unwrap();
loop {
Timer::after_millis(1000).await;
println!("tick");
}
}
#[panic_handler]
fn panic(info: &core::panic::PanicInfo) -> ! {
let _ = hal::println!("\n\n\n{}", info);
loop {}
}