The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

TARGET_TB_SENSE_1/TOOLCHAIN_IAR/timing_state.h

Committer:
AnnaBridge
Date:
2018-11-08
Revision:
171:3a7713b1edbc
Parent:
TARGET_TB_SENSE_1/TARGET_Silicon_Labs/TARGET_SL_RAIL/efr32-rf-driver/rail/timing_state.h@ 167:84c0a372a020

File content as of revision 171:3a7713b1edbc:

/***************************************************************************//**
 * @file timing_state.h
 * @brief RADIO API Abstraction layer for setting state timing information
 * @version INTERNAL
 *******************************************************************************
 * @section License
 * <b>(C) Copyright 2017 Silicon Labs, www.silabs.com</b>
 ******************************************************************************/
#ifndef __TIMING_STATE_H
#define __TIMING_STATE_H

#include <stdint.h>
#include "em_device.h"

#ifdef __cplusplus
extern "C" {
#endif

/*******************************************************************************
 *******************************   STRUCTS   ***********************************
 ******************************************************************************/

// All the timing information for state transitions
typedef struct StateTimings {
  int32_t rxChainDelayNs;
#if (_SILICON_LABS_32B_SERIES_1_CONFIG == 1) \
  || (_SILICON_LABS_32B_SERIES_1_CONFIG == 4)
  // On Dumbo the RX2TX time is based on the RXDONE time, which is stable enough
  // for our purposes. However, the timestamp is still based on FRAMEDET, so we
  // need two delays, one for the chain delay (FRAMEDET delay), and the second
  // for the RXDONE delay, which we use for RX2TX transitions only.

  // On Nixi the RX2TX time and the timestamp are based on RXDONE. The chain
  // delay for RX only calculates how long we need to stay in RX to get SYNC,
  // which does not need to be precise. (And hard to measure.)
  int32_t rxDoneDelayNs;
#endif
#if _SILICON_LABS_32B_SERIES_1_CONFIG >= 2
  // The viterbi phy needs extra time to power up the receive path during
  // TX2RX in order to receive low RSSI packets. This flag indicates to
  // turn on that extra time
  bool viterbiPhy;
#endif
  int32_t txChainDelayNs;
  uint16_t rxSearch;
  uint16_t txToRxSearch;
  uint16_t rxWarm;
  uint16_t rxToTx;
  uint16_t rxFrameToTx;
  uint16_t txWarm;
  uint16_t txToRx;
  uint16_t txToTx;
} StateTimings_t;

/** @} (end addtogroup TIMING) */
/** @} (end addtogroup RF_Library) */

#ifdef __cplusplus
}
#endif

#endif /* __TIMING_STATE_H */