PROCESS_THREAD(blink_process, ev , data) { static struct etimer timer; PROCESS_BEGIN(); etimer_set(&timer, CLOCK_SECOND/2); while(1) { PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_EXIT || ev== PROCESS_EVENT_TIMER); if (ev == PROCESS_EVENT_EXIT) break; leds_invert(LEDS_RED); #if 0 { DISABLE_FIFOP_INT(); printf("FSMSTATE: %04x",cc2420_getreg(CC2420_FSMSTATE)); ENABLE_FIFOP_INT(); if (SFD_IS_1) printf(" SFD"); if (FIFO_IS_1) printf(" FIFO"); if (FIFOP_IS_1) printf(" FIFOP"); putchar('\n'); } #endif etimer_reset(&timer); } printf("Ended process\n"); PROCESS_END(); }
static void on(void) { ENERGEST_ON(ENERGEST_TYPE_LISTEN); PRINTF("on\n"); receive_on = 1; ENABLE_FIFOP_INT(); strobe(CC2420_SRXON); flushrx(); }
void cc2420_on(void) { if (receive_on) return; receive_on = 1; cc2420_strobe(CC2420_SRXON); cc2420_strobe(CC2420_SFLUSHRX); ENABLE_FIFOP_INT(); }
//------------------------------------------------------------------------------------------------------- // void rf_rx_on(void) // // DESCRIPTION: // Enables the CC2420 receiver and the FIFOP interrupt. When a packet is received through this // interrupt, it will call rf_rx_callback(...), which must be defined by the application //------------------------------------------------------------------------------------------------------- void rf_rx_on(void) { #ifdef RADIO_PRIORITY_CEILING nrk_sem_pend (radio_sem); #endif rfSettings.receiveOn = TRUE; #ifdef CC2420_OSC_OPT FASTSPI_STROBE(CC2420_SXOSCON); nrk_spin_wait_us(OSC_STARTUP_DELAY); #endif FASTSPI_STROBE(CC2420_SRXON); FASTSPI_STROBE(CC2420_SFLUSHRX); rx_ready=0; #ifdef RADIO_PRIORITY_CEILING nrk_sem_post(radio_sem); #endif FIFOP_INT_INIT(); ENABLE_FIFOP_INT(); } // rf_rx_on()