/*! * Set Radio to RX mode, fixed packet length. * * @param channel Freq. Channel * * @note * */ void vRadio_StartRX(U8 channel) { // Read ITs, clear pending ones si446x_get_int_status(0u, 0u, 0u); /* Start Receiving packet, channel 0, START immediately, Packet n bytes long */ si446x_start_rx(channel, 0u, RadioConfiguration.Radio_PacketLength, SI446X_CMD_START_RX_ARG_RXTIMEOUT_STATE_ENUM_NOCHANGE, SI446X_CMD_START_RX_ARG_RXVALID_STATE_ENUM_RX, SI446X_CMD_START_RX_ARG_RXINVALID_STATE_ENUM_RX ); }
void vRadio_StartRXVarLen(U8 channel) { // Read ITs, clear pending ones si446x_get_int_status(0u, 0u, 0u); /* Start Receiving packet, channel 0, START immediately, Packet n bytes long */ si446x_start_rx(channel, 0u, 0, SI446X_CMD_START_RX_ARG_RXTIMEOUT_STATE_ENUM_RX, //SI446X_CMD_START_RX_ARG_RXVALID_STATE_ENUM_RX, SI446X_CMD_START_RX_ARG_RXVALID_STATE_ENUM_READY, SI446X_CMD_START_RX_ARG_RXINVALID_STATE_ENUM_RX ); }
/*! * Set Radio to RX mode. . * * @param channel Freq. Channel, packetLength : 0 Packet handler fields are used , nonzero: only Field1 is used * * @note * */ void vRadio_StartRX(U8 channel, U8 packetLenght ) { // Read ITs, clear pending ones si446x_get_int_status(0u, 0u, 0u); // Reset the Rx Fifo si446x_fifo_info(SI446X_CMD_FIFO_INFO_ARG_FIFO_RX_BIT); /* Start Receiving packet, channel 0, START immediately, Packet length used or not according to packetLength */ si446x_start_rx(channel, 0u, packetLenght, SI446X_CMD_START_RX_ARG_NEXT_STATE1_RXTIMEOUT_STATE_ENUM_NOCHANGE, SI446X_CMD_START_RX_ARG_NEXT_STATE2_RXVALID_STATE_ENUM_READY, SI446X_CMD_START_RX_ARG_NEXT_STATE3_RXINVALID_STATE_ENUM_RX ); }
/*! * Set Radio to RX mode, fixed packet length. * * @param channel Freq. Channel * * @note * */ void vRadio_StartRX(U8 channel) { //Switch to RX match network RF_Switch_RX(); // Read ITs, clear pending ones si446x_get_int_status(0u, 0u, 0u); /* Start Receiving packet, channel 0, START immediately, Packet n bytes long */ si446x_start_rx(channel, 0u, RadioConfiguration.Radio_PacketLength, SI446X_CMD_START_RX_ARG_RXTIMEOUT_STATE_ENUM_NOCHANGE, SI446X_CMD_START_RX_ARG_RXVALID_STATE_ENUM_RX, SI446X_CMD_START_RX_ARG_RXINVALID_STATE_ENUM_RX ); /* Switch on LED1 to show RX state */ //vHmi_ChangeLedState(eHmi_Led1_c, eHmi_LedOn_c); }
/*! * Set Radio to RX mode, fixed packet length. * * @param channel Freq. Channel * * @note * */ void vRadio_StartRX(U8 channel) { // volatile unsigned int tick_tmp=1000; //延时220uS; // while(tick_tmp--); #ifdef LOW_RATE_CHECK SetHighRate(); #endif PA_Rxen(); si4438_phy.RF_status=RF_IDLE_FLAG; si446x_change_state(SI446X_CMD_CHANGE_STATE_ARG_NEW_STATE_ENUM_READY); si4438_phy.rx_flag=RX_ON; si4438_phy.RF_status=RF_RX_FLAG; // Read ITs, clear pending ones si446x_get_int_status(0u, 0u, 0u); /* Reset FIFO */ si446x_fifo_info(SI446X_CMD_FIFO_INFO_ARG_RX_BIT); /* Start Receiving packet, channel 0, START immediately, Packet length according to PH */ si446x_start_rx(channel, 0u, 0x00, SI446X_CMD_START_RX_ARG_RXTIMEOUT_STATE_ENUM_NOCHANGE, SI446X_CMD_START_RX_ARG_RXVALID_STATE_ENUM_RX, SI446X_CMD_START_RX_ARG_RXINVALID_STATE_ENUM_RX ); }