Include the examples

This commit is contained in:
datdenkikniet 2023-04-22 18:28:40 +02:00
parent d90fa95266
commit 6c91ff2d7f

View file

@ -87,89 +87,13 @@ mod app {
# V2.0.0 # V2.0.0
``` rust ``` rust
#![deny(unsafe_code)] {{ #include ../../../../../examples/stm32f3_blinky/src/main.rs }}
#![deny(warnings)]
#![no_main]
#![no_std]
#![feature(type_alias_impl_trait)]
use panic_rtt_target as _;
use rtic::app;
use rtt_target::{rprintln, rtt_init_print};
use stm32f3xx_hal::gpio::{Output, PushPull, PA5};
use stm32f3xx_hal::prelude::*;
use rtic_monotonics::Systick;
#[app(device = stm32f3xx_hal::pac, peripherals = true, dispatchers = [SPI1])]
mod app {
use super::*;
#[shared]
struct Shared {}
#[local]
struct Local {
led: PA5<Output<PushPull>>,
state: bool,
}
#[init]
fn init(cx: init::Context) -> (Shared, Local, init::Monotonics) {
// Setup clocks
let mut flash = cx.device.FLASH.constrain();
let mut rcc = cx.device.RCC.constrain();
let mono_token = rtic_monotonics::create_systick_token!();
let mono = Systick::new(cx.core.SYST, 36_000_000, mono_token);
rtt_init_print!();
rprintln!("init");
let _clocks = rcc
.cfgr
.use_hse(8.MHz())
.sysclk(36.MHz())
.pclk1(36.MHz())
.freeze(&mut flash.acr);
// Setup LED
let mut gpioa = cx.device.GPIOA.split(&mut rcc.ahb);
let mut led = gpioa
.pa5
.into_push_pull_output(&mut gpioa.moder, &mut gpioa.otyper);
led.set_high().unwrap();
// Schedule the blinking task
blink::spawn().unwrap();
(
Shared {},
Local { led, state: false },
init::Monotonics(mono),
)
}
#[task(local = [led, state])]
async fn blink(cx: blink::Context) {
loop {
// A task is now allowed to run forever, provided that
// there is an `await` somewhere in the loop.
SysTick::delay(1000.millis()).await;
rprintln!("blink");
if *cx.local.state {
cx.local.led.set_high().unwrap();
*cx.local.state = false;
} else {
cx.local.led.set_low().unwrap();
*cx.local.state = true;
}
}
}
}
``` ```
## A diff between the two projects ## A diff between the two projects
_Note_: This diff may not be 100% accurate, but it displays the important changes.
``` diff ``` diff
#![no_main] #![no_main]
#![no_std] #![no_std]