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 |