Paparazzi UAS
v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
Main Page
Related Pages
Modules
Data Structures
Data Structures
Data Structure Index
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
m
n
p
r
s
t
u
v
w
Enumerations
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
z
Enumerator
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
sys_time_arch.h
Go to the documentation of this file.
1
/*
2
*
3
* Copyright (C) 2009-2011 The Paparazzi Team
4
*
5
* This file is part of paparazzi.
6
*
7
* paparazzi is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; either version 2, or (at your option)
10
* any later version.
11
*
12
* paparazzi is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with paparazzi; see the file COPYING. If not, write to
19
* the Free Software Foundation, 59 Temple Place - Suite 330,
20
* Boston, MA 02111-1307, USA.
21
*
22
*/
23
31
#ifndef SYS_TIME_ARCH_H
32
#define SYS_TIME_ARCH_H
33
34
#include "
mcu_periph/sys_time.h
"
35
36
#include BOARD_CONFIG
37
#include "
LPC21xx.h
"
38
#include "
armVIC.h
"
39
40
#include "
std.h
"
41
42
void
TIMER0_ISR
(
void
) __attribute__((naked));
43
44
/* T0 prescaler, set T0_CLK to 15MHz, T0_CLK = PCLK / T0PCLK_DIV */
45
#if (PCLK == 15000000)
46
#define T0_PCLK_DIV 1
47
48
#elif (PCLK == 30000000)
49
#define T0_PCLK_DIV 2
50
51
#elif (PCLK == 60000000)
52
#define T0_PCLK_DIV 4
53
54
#else
55
#error unknown PCLK frequency
56
#endif
57
58
#ifndef TIMER0_VIC_SLOT
59
#define TIMER0_VIC_SLOT 1
60
#endif
/* TIMER0_VIC_SLOT */
61
67
static
inline
uint32_t
get_sys_time_usec
(
void
)
68
{
69
return
usec_of_cpu_ticks
(
T0TC
);
70
}
71
76
static
inline
uint32_t
get_sys_time_msec
(
void
)
77
{
78
return
msec_of_cpu_ticks
(
T0TC
);
79
}
80
81
82
#define SysTickTimerStart(_t) { _t = T0TC; }
83
#define SysTickTimer(_t) ((uint32_t)(T0TC - _t))
84
#define SysTickTimerStop(_t) { _t = (T0TC - _t); }
85
87
static
inline
void
sys_time_usleep
(
uint32_t
us)
88
{
89
uint32_t
start =
T0TC
;
90
uint32_t
ticks
=
cpu_ticks_of_usec
(us);
91
while
((
uint32_t
)(
T0TC
- start) <
ticks
);
92
}
93
94
#endif
/* SYS_TIME_ARCH_H */
cpu_ticks_of_usec
static uint32_t cpu_ticks_of_usec(uint32_t usec)
Definition:
sys_time.h:178
armVIC.h
LPC21xx.h
sys_time_usleep
void sys_time_usleep(uint32_t us)
sys_time_usleep(uint32_t us)
Definition:
sys_time_arch.c:95
uint32_t
unsigned long uint32_t
Definition:
types.h:18
std.h
usec_of_cpu_ticks
static uint32_t usec_of_cpu_ticks(uint32_t cpu_ticks)
Definition:
sys_time.h:198
get_sys_time_usec
uint32_t get_sys_time_usec(void)
Get the time in microseconds since startup.
Definition:
sys_time_arch.c:68
sys_time.h
Architecture independent timing functions.
T0TC
#define T0TC
Definition:
LPC21xx.h:52
get_sys_time_msec
uint32_t get_sys_time_msec(void)
Get the time in milliseconds since startup.
Definition:
sys_time_arch.c:78
msec_of_cpu_ticks
static uint32_t msec_of_cpu_ticks(uint32_t cpu_ticks)
Definition:
sys_time.h:193
ticks
int ticks
Definition:
gps_sirf.c:193
TIMER0_ISR
void TIMER0_ISR(void)
Definition:
sys_time_arch.c:179
sw
airborne
arch
lpc21
mcu_periph
sys_time_arch.h
Generated on Tue Feb 1 2022 13:51:12 for Paparazzi UAS by
1.8.17