From e5042ef307f7ec80f849c3d662c8d577786ebcbc Mon Sep 17 00:00:00 2001 From: Jens Getreu <getreu@web.de> Date: Tue, 19 Sep 2017 09:59:44 +0300 Subject: [PATCH] refactor examples to work with RTFM v2 --- examples/concurrency.rs | 25 +++++++++++++++---------- examples/preemption.rs | 18 ++++++++++++------ examples/resource.rs | 19 +++++++++++++------ examples/roulette.rs | 4 ++-- 4 files changed, 42 insertions(+), 24 deletions(-) diff --git a/examples/concurrency.rs b/examples/concurrency.rs index 77a6ebb..45739ba 100644 --- a/examples/concurrency.rs +++ b/examples/concurrency.rs @@ -9,15 +9,19 @@ extern crate cortex_m; extern crate cortex_m_rtfm as rtfm; extern crate f3; -use cast::{usize, u8}; -use cortex_m::peripheral::SystClkSource; +use f3::Serial; use f3::led::{self, LEDS}; -use f3::serial::Serial; +use f3::prelude::*; +use f3::serial::Event; +use f3::time::Hertz; +use cortex_m::peripheral::SystClkSource; +use cast::{usize, u8}; use rtfm::{app, Threshold}; // CONFIGURATION -const BAUD_RATE: u32 = 115_200; // bits per second -const FREQUENCY: u32 = 4; // Hz +const BAUD_RATE: Hertz = Hertz(115_200); +const DIVISOR: u32 = 4; + // TASKS & RESOURCES app! { @@ -42,13 +46,14 @@ app! { // INITIALIZATION PHASE fn init(p: init::Peripherals, _r: init::Resources) { - let serial = Serial(&p.USART1); + led::init(p.GPIOE, p.RCC); - led::init(&p.GPIOE, &p.RCC); - serial.init(&p.GPIOA, &p.RCC, BAUD_RATE); + let serial = Serial(p.USART1); + serial.init(BAUD_RATE.invert(), Some(p.DMA1), p.GPIOA, p.RCC); + serial.listen(Event::Rxne); p.SYST.set_clock_source(SystClkSource::Core); - p.SYST.set_reload(8_000_000 / FREQUENCY); + p.SYST.set_reload(8_000_000 / DIVISOR); p.SYST.enable_interrupt(); p.SYST.enable_counter(); } @@ -63,7 +68,7 @@ fn idle() -> ! { // TASKS fn loopback(_t: &mut Threshold, r: USART1_EXTI25::Resources) { - let serial = Serial(&r.USART1); + let serial = Serial(&**r.USART1); if let Ok(byte) = serial.read() { if serial.write(byte).is_err() { diff --git a/examples/preemption.rs b/examples/preemption.rs index 8e480d1..2a193e6 100644 --- a/examples/preemption.rs +++ b/examples/preemption.rs @@ -20,14 +20,17 @@ extern crate heapless; use cast::{usize, u8}; use cortex_m::peripheral::SystClkSource; +use f3::Serial; use f3::led::{self, LEDS}; -use f3::serial::Serial; +use f3::prelude::*; +use f3::serial::Event; use heapless::Vec; use rtfm::{app, Resource, Threshold}; +use f3::time::Hertz; // CONFIGURATION -const BAUD_RATE: u32 = 115_200; // bits per second -const FREQUENCY: u32 = 4; // Hz +const BAUD_RATE: Hertz = Hertz(115_200); +const DIVISOR: u32 = 4; // TASK & RESOURCES app!{ @@ -57,10 +60,13 @@ app!{ // INITIALIZATION PHASE fn init(p: init::Peripherals, _r: init::Resources) { led::init(&p.GPIOE, &p.RCC); - Serial(&p.USART1).init(&p.GPIOA, &p.RCC, BAUD_RATE); + + let serial = Serial(p.USART1); + serial.init(BAUD_RATE.invert(), Some(p.DMA1), p.GPIOA, p.RCC); + serial.listen(Event::Rxne); p.SYST.set_clock_source(SystClkSource::Core); - p.SYST.set_reload(8_000_000 / FREQUENCY); + p.SYST.set_reload(8_000_000 / DIVISOR); p.SYST.enable_interrupt(); p.SYST.enable_counter(); } @@ -75,7 +81,7 @@ fn idle() -> ! { // TASKS fn receive(t: &mut Threshold, mut r: USART1_EXTI25::Resources) { - let serial = Serial(&r.USART1); + let serial = Serial(&**r.USART1); let byte = serial.read().unwrap(); if serial.write(byte).is_err() { diff --git a/examples/resource.rs b/examples/resource.rs index 3959ca4..66f35ef 100644 --- a/examples/resource.rs +++ b/examples/resource.rs @@ -23,14 +23,17 @@ extern crate heapless; use cast::{usize, u8}; use cortex_m::peripheral::SystClkSource; +use f3::Serial; use f3::led::{self, LEDS}; -use f3::serial::Serial; +use f3::prelude::*; +use f3::serial::Event; +use f3::time::Hertz; use heapless::Vec; use rtfm::{app, Threshold}; // CONFIGURATION -const BAUD_RATE: u32 = 115_200; // bits per second -const FREQUENCY: u32 = 4; // Hz +const BAUD_RATE: Hertz = Hertz(115_200); +const DIVISOR: u32 = 4; // TASKS & RESOURCES app! { @@ -59,10 +62,14 @@ app! { // INITIALIZATION PHASE fn init(p: init::Peripherals, _r: init::Resources) { led::init(&p.GPIOE, &p.RCC); - Serial(&p.USART1).init(&p.GPIOA, &p.RCC, BAUD_RATE); + + let serial = Serial(p.USART1); + serial.init(BAUD_RATE.invert(), Some(p.DMA1), p.GPIOA, p.RCC); + serial.listen(Event::Rxne); + p.SYST.set_clock_source(SystClkSource::Core); - p.SYST.set_reload(8_000_000 / FREQUENCY); + p.SYST.set_reload(8_000_000 / DIVISOR); p.SYST.enable_interrupt(); p.SYST.enable_counter(); } @@ -77,7 +84,7 @@ fn idle() -> ! { // TASKS fn receive(_t: &mut Threshold, r: USART1_EXTI25::Resources) { - let serial = Serial(&r.USART1); + let serial = Serial(&**r.USART1); let byte = serial.read().unwrap(); diff --git a/examples/roulette.rs b/examples/roulette.rs index 346f894..c3b48c6 100644 --- a/examples/roulette.rs +++ b/examples/roulette.rs @@ -15,7 +15,7 @@ use f3::led::{self, LEDS}; use rtfm::{app, Threshold}; // CONFIGURATION -const FREQUENCY: u32 = 4; +const DIVISOR: u32 = 4; // TASKS & RESOURCES app! { @@ -38,7 +38,7 @@ fn init(p: init::Peripherals, _r: init::Resources) { led::init(p.GPIOE, p.RCC); p.SYST.set_clock_source(SystClkSource::Core); - p.SYST.set_reload(8_000_000 / FREQUENCY); + p.SYST.set_reload(8_000_000 / DIVISOR); p.SYST.enable_interrupt(); p.SYST.enable_counter(); } -- GitLab