Subversion Repositories FlightCtrl

Rev

Rev 2103 | Rev 2107 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2103 Rev 2104
Line 11... Line 11...
11
// The channel array is 0-based!
11
// The channel array is 0-based!
12
volatile int16_t PPM_in[MAX_CHANNELS];
12
volatile int16_t PPM_in[MAX_CHANNELS];
13
volatile uint8_t RCQuality;
13
volatile uint8_t RCQuality;
Line 14... Line 14...
14
 
14
 
15
uint8_t lastRCCommand = COMMAND_NONE;
-
 
16
uint8_t commandTimer = 0;
-
 
17
 
15
uint8_t lastRCCommand = COMMAND_NONE;
Line 18... Line 16...
18
uint8_t lastFlightMode = FLIGHT_MODE_NONE;
16
uint8_t lastFlightMode = FLIGHT_MODE_NONE;
19
 
17
 
20
/***************************************************************
18
/***************************************************************
Line 174... Line 172...
174
                lastRCCommand = COMMAND_CHMOD;
172
                lastRCCommand = COMMAND_CHMOD;
175
                return lastRCCommand;
173
                return lastRCCommand;
176
        }
174
        }
Line 177... Line 175...
177
 
175
 
-
 
176
        int16_t channel = RCChannel(CH_THROTTLE);
178
        int16_t channel = RCChannel(CH_THROTTLE);
177
 
179
        if (channel <= -140) { // <= 900 us
-
 
180
                if (commandTimer == COMMAND_TIMER) {
178
        if (channel <= -140) { // <= 900 us
181
                        lastRCCommand = COMMAND_GYROCAL;
-
 
182
                }
-
 
183
                if (commandTimer <= COMMAND_TIMER) {
-
 
184
                        commandTimer++;
-
 
185
                }
179
                lastRCCommand = COMMAND_GYROCAL;
186
        } else {
-
 
187
          commandTimer = 0;
180
        } else {
188
          lastRCCommand = COMMAND_NONE;
181
          lastRCCommand = COMMAND_NONE;
189
        }
182
        }
190
        return lastRCCommand;
183
        return lastRCCommand;
Line 208... Line 201...
208
 
201
 
209
    PRYT[CONTROL_ELEVATOR]   = RCChannel(CH_ELEVATOR) * RC_SCALING;
202
    PRYT[CONTROL_ELEVATOR]   = RCChannel(CH_ELEVATOR) * RC_SCALING;
210
    PRYT[CONTROL_AILERONS]   = RCChannel(CH_AILERONS) * RC_SCALING;
203
    PRYT[CONTROL_AILERONS]   = RCChannel(CH_AILERONS) * RC_SCALING;
211
    PRYT[CONTROL_RUDDER]     = RCChannel(CH_RUDDER)   * RC_SCALING;
204
    PRYT[CONTROL_RUDDER]     = RCChannel(CH_RUDDER)   * RC_SCALING;
212
    PRYT[CONTROL_THROTTLE]   = RCChannel(CH_THROTTLE) * RC_SCALING;
-
 
213
 
-
 
214
    uint8_t command = COMMAND_NONE; //RC_getStickCommand();
-
 
215
    if (lastRCCommand == command) {
-
 
216
      // Keep timer from overrunning.
-
 
217
      if (commandTimer < COMMAND_TIMER)
-
 
218
        commandTimer++;
-
 
219
    } else {
-
 
220
      // There was a change.
-
 
221
      lastRCCommand = command;
-
 
222
      commandTimer = 0;
-
 
223
    }
205
    PRYT[CONTROL_THROTTLE]   = RCChannel(CH_THROTTLE) * RC_SCALING;
224
  } // if RCQuality is no good, we just do nothing.
206
  } // if RCQuality is no good, we just do nothing.
Line 225... Line 207...
225
}
207
}
226
 
208