#include <stdint.h>
#include <string.h>
#include "board.h"
#include "periph_conf.h"
#include "timex.h"
Go to the source code of this file.
|
#define | INTERRUPT_DECLARATION() unsigned irq_state; |
|
#define | DISABLE_INTERRUPTS() irq_state = irq_disable(); |
|
#define | ENABLE_INTERRUPTS() irq_restore(irq_state); |
|
#define | SCHEDULER_WAKEUP() /* unused by RIOT */ |
|
#define | SCHEDULER_ENABLE_INTERRUPT() /* unused by RIOT */ |
|
|
#define | PORT_TIMER_WIDTH uint32_t |
|
#define | PORT_RADIOTIMER_WIDTH uint32_t |
|
#define | PORT_SIGNED_INT_WIDTH int32_t |
|
#define | SCTIMER_FREQUENCY (32768U) |
|
#define | PORT_TICS_PER_MS (SCTIMER_FREQUENCY / MS_PER_SEC) |
|
#define | PORT_US_PER_TICK (US_PER_SEC / SCTIMER_FREQUENCY) |
|
|
- Note
- These parameters are BOARD and CPU specific. Values can't be taken directly from OpenWSN since they do not necessarily use the same BSP configuration (timers, clock speed, etc.) For precise synchronization these values should be measured and tuned for every BOARD. To understand the relationship between these values and OpenWSN state machine as well as how they can be measured refer to:
|
#define | SLOTDURATION 20 /* in milliseconds */ |
|
#define | PORT_TsSlotDuration ((SCTIMER_FREQUENCY * SLOTDURATION) / MS_PER_SEC) |
|
#define | PORT_maxTxDataPrepare (3355 / PORT_US_PER_TICK ) /* ~110 ticks at @32768Hz */ |
|
#define | PORT_maxRxAckPrepare (610 / PORT_US_PER_TICK ) /* ~20 ticks at @32768Hz */ |
|
#define | PORT_maxRxDataPrepare (1000 / PORT_US_PER_TICK ) /* ~33 ticks at@32768Hz */ |
|
#define | PORT_maxTxAckPrepare (1525 / PORT_US_PER_TICK ) /* ~50 ticks at@32768Hz */ |
|
#define | PORT_delayTx (300 / PORT_US_PER_TICK ) /* ~10 ticks at@32768Hz */ |
|
#define | PORT_delayRx (0 / PORT_US_PER_TICK ) /* ~0 ticks at@32768Hz */ |
|
|
Used for synchronization in heterogeneous networks (different BOARDs)
Not supported yet, dummy value needs to be provided.
|
#define | SYNC_ACCURACY (1) /* ticks */ |
|