Paparazzi UAS  v5.0.5_stable-7-g4b8bbb7
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
sys_time_arch.h File Reference

STM32 timing functions. More...

#include "mcu_periph/sys_time.h"
#include <libopencm3/stm32/gpio.h>
#include <libopencm3/stm32/rcc.h>
#include <libopencm3/cm3/systick.h>
#include "std.h"
+ Include dependency graph for sys_time_arch.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define SysTimeTimerStart(_t)   { _t = get_sys_time_usec(); }
 
#define SysTimeTimer(_t)   ( get_sys_time_usec() - (_t))
 
#define SysTimeTimerStop(_t)   { _t = ( get_sys_time_usec() - (_t)); }
 

Functions

static uint32_t get_sys_time_usec (void)
 Get the time in microseconds since startup. More...
 
static void sys_time_usleep (uint32_t us)
 Busy wait in microseconds. More...
 

Detailed Description

STM32 timing functions.

Definition in file sys_time_arch.h.

Macro Definition Documentation

#define SysTimeTimer (   _t)    ( get_sys_time_usec() - (_t))

Definition at line 55 of file sys_time_arch.h.

#define SysTimeTimerStart (   _t)    { _t = get_sys_time_usec(); }

Definition at line 54 of file sys_time_arch.h.

#define SysTimeTimerStop (   _t)    { _t = ( get_sys_time_usec() - (_t)); }

Definition at line 56 of file sys_time_arch.h.

Function Documentation

static uint32_t get_sys_time_usec ( void  )
inlinestatic

Get the time in microseconds since startup.

WARNING: overflows after 70min!

Returns
current system time as uint32_t

Definition at line 47 of file sys_time_arch.h.

References sys_time::nb_sec, sys_time::nb_sec_rem, and usec_of_cpu_ticks().

+ Here is the call graph for this function:

static void sys_time_usleep ( uint32_t  us)
inlinestatic

Busy wait in microseconds.

Todo:
: doesn't handle wrap-around at 2^32 / 1000000 = 4294s = ~72min

Definition at line 62 of file sys_time_arch.h.

References cpu_ticks_of_usec(), sys_time::nb_tick, sys_time::resolution_cpu_ticks, and sys_time_ticks_of_usec().

+ Here is the call graph for this function: