@@ -179,17 +179,6 @@ static bool NRF5_ESB_initialize()
179
179
// Stop timer when CC0 reached
180
180
NRF5_RADIO_TIMER->SHORTS =
181
181
TIMER_SHORTS_COMPARE3_CLEAR_Msk | TIMER_SHORTS_COMPARE3_STOP_Msk;
182
- // Reset timer
183
- NRF5_RADIO_TIMER->TASKS_CLEAR = 1 ;
184
-
185
- // Reset compare events
186
- #ifdef NRF51
187
- for (uint8_t i=0 ; i<4 ; i++) {
188
- #else
189
- for (uint8_t i=0 ; i<6 ; i++) {
190
- #endif
191
- NRF5_RADIO_TIMER->EVENTS_COMPARE [i] = 0 ;
192
- }
193
182
194
183
// Enable interrupt
195
184
NRF5_RADIO_TIMER->INTENSET = TIMER_INTENSET_COMPARE1_Enabled << TIMER_INTENSET_COMPARE1_Pos;
@@ -350,7 +339,6 @@ void NRF5_ESB_starttx()
350
339
NRF_RADIO->SHORTS = NRF5_ESB_SHORTS_TX;
351
340
352
341
// reset timer
353
- NRF_RESET_EVENT (NRF5_RADIO_TIMER->EVENTS_COMPARE [3 ]);
354
342
_stopTimer ();
355
343
NRF5_RADIO_TIMER->TASKS_CLEAR = 1 ;
356
344
// Set retransmit time
@@ -528,6 +516,19 @@ inline void _stopTimer()
528
516
NRF5_RADIO_TIMER->TASKS_STOP = 1 ;
529
517
// NRF52 PAN#78
530
518
NRF5_RADIO_TIMER->TASKS_SHUTDOWN = 1 ;
519
+
520
+ // Reset timer
521
+ NRF5_RADIO_TIMER->TASKS_CLEAR = 1 ;
522
+
523
+ // Reset compare events
524
+ #ifdef NRF51
525
+ for (uint8_t i=0 ; i<4 ; i++) {
526
+ #else
527
+ for (uint8_t i=0 ; i<6 ; i++) {
528
+ #endif
529
+ NRF5_RADIO_TIMER->EVENTS_COMPARE [i] = 0 ;
530
+ }
531
+
531
532
}
532
533
533
534
inline void _stopACK ()
@@ -697,7 +698,6 @@ extern "C" {
697
698
{
698
699
if (NRF5_RADIO_TIMER->EVENTS_COMPARE [3 ] == 1 ) {
699
700
_stopTimer ();
700
- NRF_RESET_EVENT (NRF5_RADIO_TIMER->EVENTS_COMPARE [1 ]);
701
701
if (ack_received == false ) {
702
702
// missing ACK, start TX again
703
703
NRF5_ESB_starttx ();
0 commit comments