53 lines
1.4 KiB
Rust
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 {}
|
|
}
|