Paparazzi UAS  v5.10_stable-5-g83a0da5-dirty
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
superbitrf_rc.c
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2013 Freek van Tienen <freek.v.tienen@gmail.com>
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, see
18  * <http://www.gnu.org/licenses/>.
19  */
20 
26 #include "superbitrf_rc.h"
28 
29 INFO("Radio-Control now follows PPRZ sign convention: this means you might need to reverese some channels in your transmitter: RollRight / PitchUp / YawRight / FullThrottle / Auto2 are positive deflections")
30 
31 
34 //#if DATALINK == SUPERBITRF
35 //void radio_control_impl_init(void) {}
36 //#else
38 {
40 }
41 //#endif
42 
44 static void superbitrf_rc_normalize(int16_t *in, int16_t *out, uint8_t count)
45 {
46  uint8_t i;
47  for (i = 0; i < count; i++) {
48  if (i == RADIO_THROTTLE) {
49  out[i] = (in[i] + MAX_PPRZ) / 2;
50  Bound(out[i], 0, MAX_PPRZ);
51  } else {
52  out[i] = in[i];
53  Bound(out[i], MIN_PPRZ, MAX_PPRZ);
54  }
55  }
56 }
57 
58 void radio_control_impl_event(void (* _received_frame_handler)(void))
59 {
69  _received_frame_handler();
71  }
72 }
void radio_control_impl_init(void)
Initialization.
Definition: superbitrf_rc.c:37
#define MIN_PPRZ
Definition: paparazzi.h:9
static void superbitrf_rc_normalize(int16_t *in, int16_t *out, uint8_t count)
normalize superbitrf rc_values to radio values
Definition: superbitrf_rc.c:44
uint8_t radio_ok_cpt
Definition: radio_control.h:55
uint8_t status
Definition: radio_control.h:53
DSM2 and DSMX radio control implementation for the cyrf6936 2.4GHz radio chip trough SPI...
pprz_t values[RADIO_CONTROL_NB_CHANNEL]
Definition: radio_control.h:58
void cyrf6936_event(struct Cyrf6936 *cyrf)
The on event call for the CYRF6936 chip.
Definition: cyrf6936.c:86
signed short int16_t
Definition: types.h:17
struct RadioControl radio_control
Definition: radio_control.c:30
#define RADIO_THROTTLE
Definition: spektrum_arch.h:42
#define RC_OK
Definition: radio_control.h:48
unsigned char uint8_t
Definition: types.h:14
uint8_t time_since_last_frame
Definition: radio_control.h:54
#define MAX_PPRZ
Definition: paparazzi.h:8
void radio_control_impl_event(void(*_received_frame_handler)(void))
RC event function with handler callback.
Definition: superbitrf_rc.c:58
uint8_t frame_cpt
Definition: radio_control.h:57