Rev 1872 | Rev 1962 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1872 | Rev 1960 | ||
---|---|---|---|
Line 212... | Line 212... | ||
212 | // } |
212 | // } |
213 | } |
213 | } |
214 | } |
214 | } |
215 | } |
215 | } |
Line 216... | Line 216... | ||
216 | 216 | ||
217 | #define RCChannel(dimension) PPM_in[staticParams.ChannelAssignment[dimension]] |
217 | #define RCChannel(dimension) PPM_in[channelMap.channels[dimension]] |
218 | #define RCDiff(dimension) PPM_diff[staticParams.ChannelAssignment[dimension]] |
218 | #define RCDiff(dimension) PPM_diff[channelMap.channels[dimension]] |
219 | #define COMMAND_THRESHOLD 85 |
219 | #define COMMAND_THRESHOLD 85 |
220 | #define COMMAND_CHANNEL_VERTICAL CH_THROTTLE |
220 | #define COMMAND_CHANNEL_VERTICAL CH_THROTTLE |
Line 221... | Line 221... | ||
221 | #define COMMAND_CHANNEL_HORIZONTAL CH_YAW |
221 | #define COMMAND_CHANNEL_HORIZONTAL CH_YAW |
Line 247... | Line 247... | ||
247 | void RC_update() { |
247 | void RC_update() { |
248 | int16_t tmp1, tmp2; |
248 | int16_t tmp1, tmp2; |
249 | if (RC_Quality) { |
249 | if (RC_Quality) { |
250 | RC_Quality--; |
250 | RC_Quality--; |
251 | if (NewPpmData-- == 0) { |
251 | if (NewPpmData-- == 0) { |
252 | RC_PRTY[CONTROL_PITCH] = RCChannel(CH_PITCH) * staticParams.StickP |
252 | RC_PRTY[CONTROL_PITCH] = RCChannel(CH_PITCH) * staticParams.stickP |
253 | + RCDiff(CH_PITCH) * staticParams.StickD; |
253 | + RCDiff(CH_PITCH) * staticParams.stickD; |
254 | RC_PRTY[CONTROL_ROLL] = RCChannel(CH_ROLL) * staticParams.StickP |
254 | RC_PRTY[CONTROL_ROLL] = RCChannel(CH_ROLL) * staticParams.stickP |
255 | + RCDiff(CH_ROLL) * staticParams.StickD; |
255 | + RCDiff(CH_ROLL) * staticParams.stickD; |
256 | RC_PRTY[CONTROL_THROTTLE] = RCChannel(CH_THROTTLE) + RCDiff(CH_THROTTLE) |
256 | RC_PRTY[CONTROL_THROTTLE] = RCChannel(CH_THROTTLE) + RCDiff(CH_THROTTLE) |
257 | * dynamicParams.UserParams[3] + 120; |
257 | * staticParams.stickThrottleD + 120; |
258 | if (RC_PRTY[CONTROL_THROTTLE] < 0) |
258 | if (RC_PRTY[CONTROL_THROTTLE] < 0) |
259 | RC_PRTY[CONTROL_THROTTLE] = 0; // Throttle is non negative. |
259 | RC_PRTY[CONTROL_THROTTLE] = 0; // Throttle is non negative. |
260 | tmp1 = -RCChannel(CH_YAW) - RCDiff(CH_YAW); |
260 | tmp1 = -RCChannel(CH_YAW) - RCDiff(CH_YAW); |
261 | // exponential stick sensitivity in yawing rate |
261 | // exponential stick sensitivity in yawing rate |
262 | tmp2 = (int32_t) staticParams.StickYawP * ((int32_t) tmp1 * abs(tmp1)) |
262 | tmp2 = (int32_t) staticParams.stickYawP * ((int32_t) tmp1 * abs(tmp1)) |
263 | / 512L; // expo y = ax + bx^2 |
263 | / 512L; // expo y = ax + bx^2 |
264 | tmp2 += (staticParams.StickYawP * tmp1) >> 2; |
264 | tmp2 += (staticParams.stickYawP * tmp1) >> 2; |
265 | RC_PRTY[CONTROL_YAW] = tmp2; |
265 | RC_PRTY[CONTROL_YAW] = tmp2; |
266 | } |
266 | } |
267 | uint8_t command = RC_getStickCommand(); |
267 | uint8_t command = RC_getStickCommand(); |
Line 268... | Line 268... | ||
268 | 268 | ||
Line 390... | Line 390... | ||
390 | return 5; |
390 | return 5; |
391 | return 0; |
391 | return 0; |
392 | } |
392 | } |
393 | } |
393 | } |
Line -... | Line 394... | ||
- | 394 | ||
394 | 395 | /* |
|
395 | uint8_t RC_getLooping(uint8_t looping) { |
396 | uint8_t RC_getLooping(uint8_t looping) { |
Line 396... | Line 397... | ||
396 | // static uint8_t looping = 0; |
397 | // static uint8_t looping = 0; |
397 | 398 | ||
Line 427... | Line 428... | ||
427 | looping &= (~(LOOPING_PITCH_AXIS | LOOPING_DOWN)); |
428 | looping &= (~(LOOPING_PITCH_AXIS | LOOPING_DOWN)); |
428 | } |
429 | } |
Line 429... | Line 430... | ||
429 | 430 | ||
430 | return looping; |
431 | return looping; |
- | 432 | } |
|
Line 431... | Line 433... | ||
431 | } |
433 | */ |
432 | 434 | ||
433 | uint8_t RC_testCompassCalState(void) { |
435 | uint8_t RC_testCompassCalState(void) { |
434 | static uint8_t stick = 1; |
436 | static uint8_t stick = 1; |