aboutsummaryrefslogtreecommitdiff
path: root/embassy-macros/src
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2021-08-03 22:08:13 +0200
committerDario Nieuwenhuis <[email protected]>2021-08-05 19:14:09 +0200
commit0ea6a2d8905a146c8899239fe52e739404f13e7e (patch)
tree0fdc47c7558a062787afea6d1f6a7d0ce5a2f660 /embassy-macros/src
parenta4c0ee6df7cd54a3b31524e2c6aaf2b15b61a4d2 (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.rs13
-rw-r--r--embassy-macros/src/chip/rp.rs8
-rw-r--r--embassy-macros/src/chip/stm32.rs17
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;
3use quote::quote; 3use quote::quote;
4 4
5pub fn generate(embassy_prefix: &ModulePrefix, config: syn::Expr) -> TokenStream { 5pub 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;
3use quote::quote; 3use quote::quote;
4 4
5pub fn generate(embassy_prefix: &ModulePrefix, config: syn::Expr) -> TokenStream { 5pub 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;
3use quote::quote; 3use quote::quote;
4 4
5pub fn generate(embassy_prefix: &ModulePrefix, config: syn::Expr) -> TokenStream { 5pub 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}