Compare commits
1 Commits
60f4a52953
...
58934e293f
Author | SHA1 | Date | |
---|---|---|---|
58934e293f |
@@ -35,6 +35,7 @@ enum TestCase {
|
||||
Pulse,
|
||||
// Tie PA0, PA1 and PA3 to an oscilloscope
|
||||
DelayGpio,
|
||||
// PA0 can be checked with an oscillsope to verify timing correctness.
|
||||
DelayMs,
|
||||
}
|
||||
|
||||
@@ -121,7 +122,6 @@ fn main() -> ! {
|
||||
assert_eq!(mmio_porta.read_perid(), 0x004007e1);
|
||||
}
|
||||
TestCase::Pulse => {
|
||||
// TODO: Fix
|
||||
let mut output_pulsed = Output::new(pinsa.pa0, PinState::Low);
|
||||
output_pulsed.configure_pulse_mode(true, PinState::Low);
|
||||
defmt::info!("Pulsing high 10 times..");
|
||||
@@ -162,17 +162,16 @@ fn main() -> ! {
|
||||
}
|
||||
let ahb_freq: Hertz = 50.MHz();
|
||||
let mut syst_delay = cortex_m::delay::Delay::new(cp.SYST, ahb_freq.raw());
|
||||
// Test usecond delay using both TIM peripheral and SYST. Use the release image if you
|
||||
// want to verify the timings!
|
||||
loop {
|
||||
pa0.toggle();
|
||||
delay_timer.delay_us(50);
|
||||
pa0.toggle();
|
||||
delay_timer.delay_us(50);
|
||||
// Release image should be used to verify timings for pin PA0
|
||||
for _ in 0..5 {
|
||||
pa0.toggle();
|
||||
syst_delay.delay_us(50);
|
||||
pa0.toggle();
|
||||
syst_delay.delay_us(50);
|
||||
pa0.toggle();
|
||||
delay_timer.delay_us(50);
|
||||
pa0.toggle();
|
||||
delay_timer.delay_us(50);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -30,7 +30,7 @@ embassy-executor = { version = "0.7", features = [
|
||||
]}
|
||||
|
||||
va108xx-hal = { version = "0.11", path = "../../va108xx-hal", features = ["defmt"] }
|
||||
va108xx-embassy = { version = "0.2" }
|
||||
va108xx-embassy = { version = "0.2", path = "../../va108xx-embassy" }
|
||||
|
||||
[features]
|
||||
default = ["ticks-hz-1_000", "va108xx-embassy/irq-oc30-oc31"]
|
||||
|
@@ -59,16 +59,10 @@ static CHANNEL_PB22_TO_PB23: Channel<ThreadModeRawMutex, GpioCmd, 3> = Channel::
|
||||
async fn main(spawner: Spawner) {
|
||||
defmt::println!("-- VA108xx Async GPIO Demo --");
|
||||
|
||||
let mut dp = pac::Peripherals::take().unwrap();
|
||||
let dp = pac::Peripherals::take().unwrap();
|
||||
|
||||
// Safety: Only called once here.
|
||||
va108xx_embassy::init(
|
||||
&mut dp.sysconfig,
|
||||
&dp.irqsel,
|
||||
SYSCLK_FREQ,
|
||||
dp.tim23,
|
||||
dp.tim22,
|
||||
);
|
||||
va108xx_embassy::init(dp.tim23, dp.tim22, SYSCLK_FREQ);
|
||||
|
||||
let porta = PinsA::new(dp.porta);
|
||||
let portb = PinsB::new(dp.portb);
|
||||
|
@@ -52,16 +52,10 @@ static CONSUMER_UART_B: Mutex<RefCell<Option<Consumer<u8, 256>>>> = Mutex::new(R
|
||||
async fn main(spawner: Spawner) {
|
||||
defmt::println!("-- VA108xx Async UART RX Demo --");
|
||||
|
||||
let mut dp = pac::Peripherals::take().unwrap();
|
||||
let dp = pac::Peripherals::take().unwrap();
|
||||
|
||||
// Safety: Only called once here.
|
||||
va108xx_embassy::init(
|
||||
&mut dp.sysconfig,
|
||||
&dp.irqsel,
|
||||
SYSCLK_FREQ,
|
||||
dp.tim23,
|
||||
dp.tim22,
|
||||
);
|
||||
va108xx_embassy::init(dp.tim23, dp.tim22, SYSCLK_FREQ);
|
||||
|
||||
let porta = PinsA::new(dp.porta);
|
||||
let mut led0 = Output::new(porta.pa10, PinState::Low);
|
||||
|
@@ -39,16 +39,10 @@ const STR_LIST: &[&str] = &[
|
||||
async fn main(_spawner: Spawner) {
|
||||
defmt::println!("-- VA108xx Async UART TX Demo --");
|
||||
|
||||
let mut dp = pac::Peripherals::take().unwrap();
|
||||
let dp = pac::Peripherals::take().unwrap();
|
||||
|
||||
// Safety: Only called once here.
|
||||
va108xx_embassy::init(
|
||||
&mut dp.sysconfig,
|
||||
&dp.irqsel,
|
||||
SYSCLK_FREQ,
|
||||
dp.tim23,
|
||||
dp.tim22,
|
||||
);
|
||||
va108xx_embassy::init(dp.tim23, dp.tim22, SYSCLK_FREQ);
|
||||
|
||||
let porta = PinsA::new(dp.porta);
|
||||
|
||||
|
@@ -26,23 +26,21 @@ const SYSCLK_FREQ: Hertz = Hertz::from_raw(50_000_000);
|
||||
async fn main(_spawner: Spawner) {
|
||||
defmt::println!("-- VA108xx Embassy Demo --");
|
||||
|
||||
let mut dp = pac::Peripherals::take().unwrap();
|
||||
let dp = pac::Peripherals::take().unwrap();
|
||||
|
||||
// Safety: Only called once here.
|
||||
cfg_if::cfg_if! {
|
||||
if #[cfg(not(feature = "custom-irqs"))] {
|
||||
va108xx_embassy::init(
|
||||
&mut dp.sysconfig,
|
||||
&dp.irqsel,
|
||||
SYSCLK_FREQ,
|
||||
dp.tim23,
|
||||
dp.tim22,
|
||||
SYSCLK_FREQ,
|
||||
);
|
||||
} else {
|
||||
va108xx_embassy::init_with_custom_irqs(
|
||||
SYSCLK_FREQ,
|
||||
dp.tim23,
|
||||
dp.tim22,
|
||||
SYSCLK_FREQ,
|
||||
pac::Interrupt::OC23,
|
||||
pac::Interrupt::OC24,
|
||||
);
|
||||
|
@@ -88,9 +88,9 @@ embassy_time_driver_irqs!(timekeeper_irq = OC29, alarm_irq = OC28);
|
||||
/// default case.
|
||||
#[cfg(feature = "irqs-in-lib")]
|
||||
pub fn init<TimekeeperTim: TimMarker, AlarmTim: TimMarker>(
|
||||
sysclk: Hertz,
|
||||
timekeeper_tim: TimekeeperTim,
|
||||
alarm_tim: AlarmTim,
|
||||
sysclk: Hertz,
|
||||
) {
|
||||
time_driver().__init(sysclk, timekeeper_tim, alarm_tim, TIMEKEEPER_IRQ, ALARM_IRQ)
|
||||
}
|
||||
@@ -99,9 +99,9 @@ pub fn init<TimekeeperTim: TimMarker, AlarmTim: TimMarker>(
|
||||
///
|
||||
/// Requires an explicit [pac::Interrupt] argument for the timekeeper and alarm IRQs.
|
||||
pub fn init_with_custom_irqs<TimekeeperTim: TimMarker, AlarmTim: TimMarker>(
|
||||
sysclk: Hertz,
|
||||
timekeeper_tim: TimekeeperTim,
|
||||
alarm_tim: AlarmTim,
|
||||
sysclk: Hertz,
|
||||
timekeeper_irq: pac::Interrupt,
|
||||
alarm_irq: pac::Interrupt,
|
||||
) {
|
||||
|
Reference in New Issue
Block a user