diff options
author | chemicstry <chemicstry@gmail.com> | 2022-07-10 20:38:30 +0300 |
---|---|---|
committer | chemicstry <chemicstry@gmail.com> | 2022-07-10 20:38:30 +0300 |
commit | bd01e90bfa4895b45e41ad538cb24a959b0b58ab (patch) | |
tree | ec86a61d00a087e1faba730d922e53c8f3086f2f /examples/stm32f4/src/bin | |
parent | 5f43c1d37e9db847c7861fe0bd821db62edba9f6 (diff) | |
download | embassy-bd01e90bfa4895b45e41ad538cb24a959b0b58ab.zip |
Implement IWDG timeout calculation
Diffstat (limited to 'examples/stm32f4/src/bin')
-rw-r--r-- | examples/stm32f4/src/bin/wdt.rs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/examples/stm32f4/src/bin/wdt.rs b/examples/stm32f4/src/bin/wdt.rs new file mode 100644 index 00000000..41e1f4c7 --- /dev/null +++ b/examples/stm32f4/src/bin/wdt.rs @@ -0,0 +1,44 @@ +#![no_std] +#![no_main] +#![feature(type_alias_impl_trait)] + +use defmt::*; +use embassy::executor::Spawner; +use embassy::time::{Duration, Timer}; +use embassy_stm32::gpio::{Level, Output, Speed}; +use embassy_stm32::wdg::IndependentWatchdog; +use embassy_stm32::Peripherals; +use {defmt_rtt as _, panic_probe as _}; + +#[embassy::main] +async fn main(_spawner: Spawner, p: Peripherals) { + info!("Hello World!"); + + let mut led = Output::new(p.PB7, Level::High, Speed::Low); + + let mut wdt = IndependentWatchdog::new(p.IWDG, Duration::from_secs(1)); + unsafe { + wdt.unleash(); + } + + let mut i = 0; + + loop { + info!("high"); + led.set_high(); + Timer::after(Duration::from_millis(300)).await; + + info!("low"); + led.set_low(); + Timer::after(Duration::from_millis(300)).await; + + if i < 5 { + info!("Petting watchdog"); + unsafe { + wdt.pet(); + } + } + + i += 1; + } +} |