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
baro_board.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2013 Gautier Hattenberger (ENAC)
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  */
22 
29 #ifndef BOARDS_APOGEE_BARO_H
30 #define BOARDS_APOGEE_BARO_H
31 
32 #include "std.h"
33 #include "peripherals/mpl3115.h"
34 
35 /* There is no differential pressure on the board but
36  * it can be available from an external sensor
37  * */
38 
39 #define BaroAbs(_handler) { \
40  mpl3115_event(); \
41  if (mpl3115_data_available) { \
42  baro.absolute = mpl3115_pressure; \
43  if (baro.status == BS_RUNNING) { \
44  _handler(); \
45  mpl3115_data_available = FALSE; \
46  } \
47  } \
48 }
49 
50 // TODO handle baro diff
51 #ifndef BaroDiff
52 #define BaroDiff(_h) {}
53 #endif
54 
55 #define BaroEvent(_b_abs_handler, _b_diff_handler) { \
56  BaroAbs(_b_abs_handler); \
57  BaroDiff(_b_diff_handler); \
58 }
59 
60 #endif // BOARDS_APOGEE_BARO_H
Driver for the baro MPL3115A2 from Freescale (i2c)