diff options
| author | Dario Nieuwenhuis <[email protected]> | 2021-08-03 22:08:13 +0200 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2021-08-05 19:14:09 +0200 |
| commit | 0ea6a2d8905a146c8899239fe52e739404f13e7e (patch) | |
| tree | 0fdc47c7558a062787afea6d1f6a7d0ce5a2f660 /embassy-macros/src | |
| parent | a4c0ee6df7cd54a3b31524e2c6aaf2b15b61a4d2 (diff) | |
time: replace dyn clock/alarm with a global Driver trait
Diffstat (limited to 'embassy-macros/src')
| -rw-r--r-- | embassy-macros/src/chip/nrf.rs | 13 | ||||
| -rw-r--r-- | embassy-macros/src/chip/rp.rs | 8 | ||||
| -rw-r--r-- | embassy-macros/src/chip/stm32.rs | 17 |
3 files changed, 0 insertions, 38 deletions
diff --git a/embassy-macros/src/chip/nrf.rs b/embassy-macros/src/chip/nrf.rs index 503a8ba5a..3ff6a74cf 100644 --- a/embassy-macros/src/chip/nrf.rs +++ b/embassy-macros/src/chip/nrf.rs | |||
| @@ -3,22 +3,9 @@ use proc_macro2::TokenStream; | |||
| 3 | use quote::quote; | 3 | use quote::quote; |
| 4 | 4 | ||
| 5 | pub fn generate(embassy_prefix: &ModulePrefix, config: syn::Expr) -> TokenStream { | 5 | pub fn generate(embassy_prefix: &ModulePrefix, config: syn::Expr) -> TokenStream { |
| 6 | let embassy_path = embassy_prefix.append("embassy").path(); | ||
| 7 | let embassy_nrf_path = embassy_prefix.append("embassy_nrf").path(); | 6 | let embassy_nrf_path = embassy_prefix.append("embassy_nrf").path(); |
| 8 | 7 | ||
| 9 | quote!( | 8 | quote!( |
| 10 | use #embassy_nrf_path::{interrupt, peripherals, rtc}; | ||
| 11 | |||
| 12 | let p = #embassy_nrf_path::init(#config); | 9 | let p = #embassy_nrf_path::init(#config); |
| 13 | |||
| 14 | let mut rtc = rtc::RTC::new(unsafe { <peripherals::RTC1 as #embassy_path::util::Steal>::steal() }, interrupt::take!(RTC1)); | ||
| 15 | let rtc = unsafe { make_static(&mut rtc) }; | ||
| 16 | rtc.start(); | ||
| 17 | let mut alarm = rtc.alarm0(); | ||
| 18 | |||
| 19 | unsafe { #embassy_path::time::set_clock(rtc) }; | ||
| 20 | |||
| 21 | let alarm = unsafe { make_static(&mut alarm) }; | ||
| 22 | executor.set_alarm(alarm); | ||
| 23 | ) | 10 | ) |
| 24 | } | 11 | } |
diff --git a/embassy-macros/src/chip/rp.rs b/embassy-macros/src/chip/rp.rs index d40a44963..ba0a97ada 100644 --- a/embassy-macros/src/chip/rp.rs +++ b/embassy-macros/src/chip/rp.rs | |||
| @@ -3,16 +3,8 @@ use proc_macro2::TokenStream; | |||
| 3 | use quote::quote; | 3 | use quote::quote; |
| 4 | 4 | ||
| 5 | pub fn generate(embassy_prefix: &ModulePrefix, config: syn::Expr) -> TokenStream { | 5 | pub fn generate(embassy_prefix: &ModulePrefix, config: syn::Expr) -> TokenStream { |
| 6 | let embassy_path = embassy_prefix.append("embassy").path(); | ||
| 7 | let embassy_rp_path = embassy_prefix.append("embassy_rp").path(); | 6 | let embassy_rp_path = embassy_prefix.append("embassy_rp").path(); |
| 8 | quote!( | 7 | quote!( |
| 9 | use #embassy_rp_path::{interrupt, peripherals}; | ||
| 10 | |||
| 11 | let p = #embassy_rp_path::init(#config); | 8 | let p = #embassy_rp_path::init(#config); |
| 12 | |||
| 13 | let alarm = unsafe { <#embassy_rp_path::peripherals::TIMER_ALARM0 as #embassy_path::util::Steal>::steal() }; | ||
| 14 | let mut alarm = #embassy_rp_path::timer::Alarm::new(alarm); | ||
| 15 | let alarm = unsafe { make_static(&mut alarm) }; | ||
| 16 | executor.set_alarm(alarm); | ||
| 17 | ) | 9 | ) |
| 18 | } | 10 | } |
diff --git a/embassy-macros/src/chip/stm32.rs b/embassy-macros/src/chip/stm32.rs index 32a0a0173..c6938836c 100644 --- a/embassy-macros/src/chip/stm32.rs +++ b/embassy-macros/src/chip/stm32.rs | |||
| @@ -3,26 +3,9 @@ use proc_macro2::TokenStream; | |||
| 3 | use quote::quote; | 3 | use quote::quote; |
| 4 | 4 | ||
| 5 | pub fn generate(embassy_prefix: &ModulePrefix, config: syn::Expr) -> TokenStream { | 5 | pub fn generate(embassy_prefix: &ModulePrefix, config: syn::Expr) -> TokenStream { |
| 6 | let embassy_path = embassy_prefix.append("embassy").path(); | ||
| 7 | let embassy_stm32_path = embassy_prefix.append("embassy_stm32").path(); | 6 | let embassy_stm32_path = embassy_prefix.append("embassy_stm32").path(); |
| 8 | 7 | ||
| 9 | quote!( | 8 | quote!( |
| 10 | use #embassy_stm32_path::{interrupt, peripherals, clock::Clock, time::Hertz}; | ||
| 11 | |||
| 12 | let p = #embassy_stm32_path::init(#config); | 9 | let p = #embassy_stm32_path::init(#config); |
| 13 | |||
| 14 | let mut c = Clock::new( | ||
| 15 | unsafe { <peripherals::TIM3 as embassy::util::Steal>::steal() }, | ||
| 16 | interrupt::take!(TIM3), | ||
| 17 | ); | ||
| 18 | let clock = unsafe { make_static(&mut c) }; | ||
| 19 | |||
| 20 | clock.start(); | ||
| 21 | |||
| 22 | let mut alarm = clock.alarm1(); | ||
| 23 | unsafe { #embassy_path::time::set_clock(clock) }; | ||
| 24 | |||
| 25 | let alarm = unsafe { make_static(&mut alarm) }; | ||
| 26 | executor.set_alarm(alarm); | ||
| 27 | ) | 10 | ) |
| 28 | } | 11 | } |
