aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-nrf/src/radio/ble.rs9
1 files changed, 2 insertions, 7 deletions
diff --git a/embassy-nrf/src/radio/ble.rs b/embassy-nrf/src/radio/ble.rs
index 93003fb19..4f0b0641f 100644
--- a/embassy-nrf/src/radio/ble.rs
+++ b/embassy-nrf/src/radio/ble.rs
@@ -335,8 +335,6 @@ impl<'d, T: Instance> Radio<'d, T> {
335 } 335 }
336 336
337 async fn trigger_and_wait_end(&mut self, trigger: impl FnOnce()) { 337 async fn trigger_and_wait_end(&mut self, trigger: impl FnOnce()) {
338 //self.trace_state();
339
340 let r = T::regs(); 338 let r = T::regs();
341 let s = T::state(); 339 let s = T::state();
342 340
@@ -347,12 +345,10 @@ impl<'d, T: Instance> Radio<'d, T> {
347 trace!("radio drop: stopping"); 345 trace!("radio drop: stopping");
348 346
349 r.intenclr.write(|w| w.end().clear()); 347 r.intenclr.write(|w| w.end().clear());
350 r.events_end.reset();
351 348
352 r.tasks_stop.write(|w| unsafe { w.bits(1) }); 349 r.tasks_stop.write(|w| unsafe { w.bits(1) });
353 350
354 // The docs don't explicitly mention any event to acknowledge the stop task 351 r.events_end.reset();
355 while r.events_end.read().bits() == 0 {}
356 352
357 trace!("radio drop: stopped"); 353 trace!("radio drop: stopped");
358 }); 354 });
@@ -368,7 +364,6 @@ impl<'d, T: Instance> Radio<'d, T> {
368 364
369 // Trigger the transmission 365 // Trigger the transmission
370 trigger(); 366 trigger();
371 // self.trace_state();
372 367
373 // On poll check if interrupt happen 368 // On poll check if interrupt happen
374 poll_fn(|cx| { 369 poll_fn(|cx| {
@@ -382,7 +377,7 @@ impl<'d, T: Instance> Radio<'d, T> {
382 .await; 377 .await;
383 378
384 compiler_fence(Ordering::SeqCst); 379 compiler_fence(Ordering::SeqCst);
385 r.events_disabled.reset(); // ACK 380 r.events_end.reset(); // ACK
386 381
387 // Everthing ends fine, so it disable the drop 382 // Everthing ends fine, so it disable the drop
388 drop.defuse(); 383 drop.defuse();