void m_handle_start(void) { // Configure TX_EN on TIMER EVENT_0 NRF_PPI->CH[8].TEP = (uint32_t)(&NRF_RADIO->TASKS_TXEN); NRF_PPI->CH[8].EEP = (uint32_t)(&NRF_TIMER0->EVENTS_COMPARE[0]); NRF_PPI->CHENSET = (1 << 8); // Configure and initiate radio m_configure_radio(); NRF_RADIO->TASKS_DISABLE = 1; }
static void m_handle_start(void) { // Configure TX_EN on TIMER EVENT_0 NRF_PPI->CH[8].TEP = (uint32_t)(&NRF_RADIO->TASKS_DISABLE); NRF_PPI->CH[8].EEP = (uint32_t)(&NRF_TIMER0->EVENTS_COMPARE[0]); NRF_PPI->CHENSET = (1 << 8); // Configure and initiate radio m_configure_radio(); NRF_RADIO->TASKS_DISABLE = 1; NRF_TIMER0->CC[0] = 0; // TODO: Necessary? // Set up rescheduling NRF_TIMER0->INTENSET = (1UL << TIMER_INTENSET_COMPARE1_Pos); NRF_TIMER0->CC[1] = TIMESLOT_LEN_US - 800; NVIC_EnableIRQ(TIMER0_IRQn); }