File tree Expand file tree Collapse file tree 2 files changed +24
-5
lines changed Expand file tree Collapse file tree 2 files changed +24
-5
lines changed Original file line number Diff line number Diff line change @@ -103,12 +103,11 @@ const APP: () = {
103
103
104
104
#[ task( binds = PWM0 , resources = [ pwm] ) ]
105
105
fn on_pwm ( ctx : on_pwm:: Context ) {
106
- let ( buf0 , buf1 , pwm ) = ctx. resources . pwm . take ( ) . unwrap ( ) . split ( ) ;
107
- if pwm . is_event_triggered ( PwmEvent :: Stopped ) {
108
- pwm . reset_event ( PwmEvent :: Stopped ) ;
106
+ let pwm_seq = ctx. resources . pwm . as_ref ( ) . unwrap ( ) ;
107
+ if pwm_seq . is_event_triggered ( PwmEvent :: Stopped ) {
108
+ pwm_seq . reset_event ( PwmEvent :: Stopped ) ;
109
109
rprintln ! ( "PWM generation was stopped" ) ;
110
110
}
111
- ctx. resources . pwm . replace ( pwm. wrap ( buf0, buf1) ) ;
112
111
}
113
112
114
113
#[ task( binds = GPIOTE , resources = [ gpiote] , schedule = [ debounce] ) ]
Original file line number Diff line number Diff line change @@ -800,7 +800,7 @@ where
800
800
inner. pwm . stop ( ) ;
801
801
}
802
802
803
- // Starts playing the given sequence.
803
+ /// Starts playing the given sequence.
804
804
#[ inline( always) ]
805
805
pub fn start_seq ( & self , seq : Seq ) {
806
806
let inner = self
@@ -809,6 +809,26 @@ where
809
809
. unwrap_or_else ( || unsafe { core:: hint:: unreachable_unchecked ( ) } ) ;
810
810
inner. pwm . start_seq ( seq) ;
811
811
}
812
+
813
+ /// Checks if the given event has been triggered.
814
+ #[ inline( always) ]
815
+ pub fn is_event_triggered ( & self , event : PwmEvent ) -> bool {
816
+ let inner = self
817
+ . inner
818
+ . as_ref ( )
819
+ . unwrap_or_else ( || unsafe { core:: hint:: unreachable_unchecked ( ) } ) ;
820
+ inner. pwm . is_event_triggered ( event)
821
+ }
822
+
823
+ /// Marks the given event as handled.
824
+ #[ inline( always) ]
825
+ pub fn reset_event ( & self , event : PwmEvent ) {
826
+ let inner = self
827
+ . inner
828
+ . as_ref ( )
829
+ . unwrap_or_else ( || unsafe { core:: hint:: unreachable_unchecked ( ) } ) ;
830
+ inner. pwm . reset_event ( event)
831
+ }
812
832
}
813
833
814
834
impl < T : Instance > embedded_hal:: Pwm for Pwm < T > {
You can’t perform that action at this time.
0 commit comments