Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 2152 → Rev 2173

/branches/dongfang_FC_fixedwing/eeprom.h
13,7 → 13,7
//#define EEPROM_ADR_GYROOFFSET (EEPROM_ADR_ACCOFFSET+sizeof(sensorOffset_t)+EEPROM_CHECKSUMMED_BLOCK_OVERHEAD)
//#define EEPROM_ADR_GYROAMPLIFIER (EEPROM_ADR_GYROOFFSET+sizeof(sensorOffset_t)+EEPROM_CHECKSUMMED_BLOCK_OVERHEAD)
//#define EEPROM_ADR_CHANNELMAP (EEPROM_ADR_GYROAMPLIFIER+sizeof(sensorOffset_t)+EEPROM_CHECKSUMMED_BLOCK_OVERHEAD)
//#define EEPROM_ADR_PARAMSET_BEGIN (EEPROM_ADR_MIXER_TABLE+sizeof(mixerMatrix_t)+EEPROM_CHECKSUMMED_BLOCK_OVERHEAD)
//#define EEPROM_ADR_PARAMSET_BEGIN (EEPROM_ADR_MIXER_TABLE+sizeof(motorMixer_t)+EEPROM_CHECKSUMMED_BLOCK_OVERHEAD)
 
#define EEPROM_ADR_AIRSPEEDOFFSET 16
 
/branches/dongfang_FC_fixedwing/rc.c
11,12 → 11,12
// The channel array is 0-based!
volatile int16_t PPM_in[MAX_CHANNELS];
volatile uint16_t RC_buffer[MAX_CHANNELS];
volatile uint8_t inBfrPnt = 0;
volatile uint8_t inBfrPnt;
 
volatile uint8_t RCQuality;
 
uint8_t lastRCCommand = COMMAND_NONE;
uint8_t lastFlightMode = FLIGHT_MODE_NONE;
uint8_t lastRCCommand;
uint8_t lastFlightMode;
 
#define TIME(s) ((int16_t)(((long)F_CPU/(long)8000)*(float)s))
 
72,9 → 72,7
// Enable Overflow Interrupt (bit: TOIE1=0)
TIMSK1 &= ~((1<<OCIE1B) | (1<<OCIE1A) | (1<<TOIE1));
TIMSK1 |= (1<<ICIE1);
 
RCQuality = 0;
 
SREG = sreg;
}
 
87,9 → 85,9
oldICR1 = ICR1;
//sync gap? (3.5 ms < signal < 25.6 ms)
if (signal > TIME(3.5)) {
inBfrPnt = 0;
inBfrPnt = 0;
} else if (inBfrPnt<MAX_CHANNELS) {
RC_buffer[inBfrPnt++] = signal;
RC_buffer[inBfrPnt++] = signal;
}
}
 
115,7 → 113,7
the syncronization gap.
*/
void RC_process(void) {
if (RCQuality) RCQuality--;
if (RCQuality) RCQuality--;
for (uint8_t channel=0; channel<MAX_CHANNELS; channel++) {
uint16_t signal = RC_buffer[channel];
if (signal != 0) {