diff --git a/examples/concurrency.rs b/examples/concurrency.rs index 77a6ebb6dfbee63d5e9bea6595d418a319e75499..45739ba6a7d364f61a6bf9619e1364ece6fd856d 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 8e480d18612315660e86d4460439e1d37c6f19ff..2a193e698d11a3e6f6ac9faff4594bf091c38b27 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 3959ca49fd18ccb0963dc660a1273076f8de79f6..66f35efed610b7b7e7906459e91f8851b5864754 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 346f894d454b01967022d5cddef8d6d9828dccec..c3b48c6a1df315a097cb071a74ab4bfe5e3812de 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(); }