implementation.h File Reference

xtimer implementation More...

Detailed Description

#include "periph/timer.h"
#include "irq.h"
+ Include dependency graph for implementation.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


#define XTIMER_MIN_SPIN   _xtimer_usec_from_ticks(1)
 Minimal value xtimer_spin() can spin.
#define MSG_XTIMER   12345
 IPC message type for xtimer msg callback.
volatile uint64_t _xtimer_current_time
static uint32_t _xtimer_lltimer_now (void)
 returns the (masked) low-level timer counter value.
static uint32_t _xtimer_lltimer_mask (uint32_t val)
 drop bits of a value that don't fit into the low-level timer.
uint32_t _xtimer_now (void)
 xtimer internal stuff
int _xtimer_set_absolute (xtimer_t *timer, uint32_t target)
 Sets the timer to the appropriate timer_list or list_head. More...
void _xtimer_set64 (xtimer_t *timer, uint32_t offset, uint32_t long_offset)
void _xtimer_periodic_wakeup (uint32_t *last_wakeup, uint32_t period)
void _xtimer_set_wakeup (xtimer_t *timer, uint32_t offset, kernel_pid_t pid)
void _xtimer_set_wakeup64 (xtimer_t *timer, uint64_t offset, kernel_pid_t pid)
void _xtimer_tsleep (uint32_t offset, uint32_t long_offset)
 Sleep for the given number of ticks.

Function Documentation

◆ _xtimer_set_absolute()

int _xtimer_set_absolute ( xtimer_t timer,
uint32_t  target 

Sets the timer to the appropriate timer_list or list_head.

The target to set the timer to has to be at least bigger then the ticks needed to jump into the function and calculate '_xtimer_now()'. So that 'now' did not pass the target. This is crucial when using low CPU frequencies and/or when the '_xtimer_now()' call needs multiple xtimer ticks to evaluate.
[in]timerpointer to xtimer_t which is added to the list.
[in]targetAbsolute target value in ticks.