Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
sys_time_arch.c
Go to the documentation of this file.
1/*
2 * Copyright (C) 2009-2011 The Paparazzi Team
3 *
4 * This file is part of paparazzi.
5 *
6 * paparazzi is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2, or (at your option)
9 * any later version.
10 *
11 * paparazzi is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with paparazzi; see the file COPYING. If not, write to
18 * the Free Software Foundation, 59 Temple Place - Suite 330,
19 * Boston, MA 02111-1307, USA.
20 */
21
30#include "mcu_periph/sys_time.h"
31
32#include "libopencm3/cm3/systick.h"
33
34#ifdef SYS_TIME_LED
35#include "led.h"
36#endif
37
38#ifndef USE_OCM3_SYSTICK_INIT
39#define USE_OCM3_SYSTICK_INIT 1
40#endif
41
42void sys_tick_handler(void);
43
48{
49 /* run cortex systick timer with 72MHz (FIXME only 72 or does it work with 168MHz???) */
50#if USE_OCM3_SYSTICK_INIT
52#endif
54
55 /* cpu ticks per desired sys_time timer step */
57
58#if USE_OCM3_SYSTICK_INIT
59 /* The timer interrupt is activated on the transition from 1 to 0,
60 * therefore it activates every n+1 clock ticks.
61 */
63
66#endif
67}
68
69
70// FIXME : nb_tick rollover ???
71//
72// 97 days at 512hz
73// 12 hours at 100khz
74//
76{
78
83
84#ifdef SYS_TIME_LED
86#endif
87 }
88 for (unsigned int i = 0; i < SYS_TIME_NB_TIMER; i++) {
89 if (sys_time.timer[i].in_use &&
92 sys_time.timer[i].elapsed = true;
93 if (sys_time.timer[i].cb) {
94 sys_time.timer[i].cb(i);
95 }
96 }
97 }
98}
#define AHB_CLK
Definition apogee_1.0.h:8
#define LED_TOGGLE(i)
Definition led_hw.h:53
static void sys_tick_handler(void)
void sys_time_arch_init(void)
arch independent LED (Light Emitting Diodes) API
uint16_t foo
Definition main_demo5.c:58
Architecture independent timing functions.
volatile uint32_t nb_tick
SYS_TIME_TICKS since startup.
Definition sys_time.h:74
volatile uint32_t nb_sec
full seconds since startup
Definition sys_time.h:72
uint32_t cpu_ticks_per_sec
cpu ticks per second
Definition sys_time.h:80
uint32_t duration
in SYS_TIME_TICKS
Definition sys_time.h:68
uint32_t resolution_cpu_ticks
sys_time_timer resolution in cpu ticks
Definition sys_time.h:79
volatile uint32_t nb_sec_rem
remainder of seconds since startup in CPU_TICKS
Definition sys_time.h:73
float resolution
sys_time_timer resolution in seconds
Definition sys_time.h:77
sys_time_cb cb
Definition sys_time.h:65
#define SYS_TIME_NB_TIMER
Definition sys_time.h:44
uint32_t end_time
in SYS_TIME_TICKS
Definition sys_time.h:67
struct sys_time_timer timer[SYS_TIME_NB_TIMER]
Definition sys_time.h:75
volatile bool elapsed
Definition sys_time.h:66
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.