Subversion Repositories FlightCtrl

Rev

Rev 1775 | Rev 1864 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#ifndef _RC_H
#define _RC_H

#include <inttypes.h>

#define J3HIGH    PORTD |= (1<<PORTD5)
#define J3LOW     PORTD &= ~(1<<PORTD5)
#define J3TOGGLE  PORTD ^= (1<<PORTD5)

#define J4HIGH    PORTD |= (1<<PORTD4)
#define J4LOW     PORTD &= ~(1<<PORTD4)
#define J4TOGGLE  PORTD ^= (1<<PORTD4)

#define J5HIGH    PORTD |= (1<<PORTD3)
#define J5LOW     PORTD &= ~(1<<PORTD3)
#define J5TOGGLE  PORTD ^= (1<<PORTD3)

#define MAX_CHANNELS 10

// Number of cycles a command must be repeated before commit.
#define COMMAND_TIMER 200

extern void RC_Init(void);
// the RC-Signal. todo: Not export any more.
extern volatile int16_t PPM_in[MAX_CHANNELS];
// extern volatile int16_t PPM_diff[MAX_CHANNELS];      // the differentiated RC-Signal. Should that be exported??
extern volatile uint8_t NewPpmData; // 0 indicates a new recieved PPM Frame
extern volatile int16_t RC_Quality; // rc signal quality indicator (0 to 200)

// defines for lookup staticParams.ChannelAssignment
#define CH_PITCH        0
#define CH_ROLL         1
#define CH_THROTTLE     2
#define CH_YAW          3
#define CH_POTS         4
#define POT_OFFSET      115

/*
 int16_t  RC_getPitch        (void);
 int16_t  RC_getYaw          (void);
 int16_t  RC_getRoll         (void);
 uint16_t RC_getThrottle     (void);
 uint8_t  RC_hasNewRCData    (void);
 */


void RC_update(void);
int16_t* RC_getPRTY(void);
uint8_t RC_getArgument(void);
uint8_t RC_getCommand(void);
int16_t RC_getVariable(uint8_t varNum);
void RC_calibrate(void);
uint8_t RC_getSignalQuality(void);
uint8_t RC_getLooping(uint8_t looping);
uint8_t RC_testCompassCalState(void);
#endif //_RC_H