657,35 → 657,43 |
|
static int stick_nick,stick_roll; |
ParameterZuordnung(); |
|
|
#define MAX_CHAN_VAL 125L |
#define COS45 7071L // cos( -45 ) * 10000 |
|
long chanNick = PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]; |
long chanRoll = -PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]; |
long chanNick = PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]; |
long chanRoll = PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]; |
|
int chanNickDiff; |
int chanRollDiff; |
|
/* Über Parameter läßt sich zwischen "+" und "X" - Formations |
* umschalten (sh. parameter.h) |
*/ |
if( PARAM_X_FORMATION ) { |
|
// Stick-Koordinatensystem um -45° (rechts) drehen |
chanNick *= COS45; |
chanRoll *= COS45; |
chanRoll = -chanRoll; |
|
// Stick-Koordinatensystem um -45° (rechts) drehen |
chanNick *= COS45; |
chanRoll *= COS45; |
|
int chanNickTemp = ( chanNick - chanRoll ) / 10000L; |
int chanRollTemp = ( chanRoll + chanNick ) / 10000L; |
int chanNickTemp = ( chanNick - chanRoll ) / 10000L; |
int chanRollTemp = ( chanRoll + chanNick ) / 10000L; |
|
chanNick = chanNickTemp; |
chanRoll = -chanRollTemp; |
chanNick = chanNickTemp; |
chanRoll = -chanRollTemp; |
|
if (chanNick > MAX_CHAN_VAL) |
chanNick = MAX_CHAN_VAL; |
if (chanNick < -MAX_CHAN_VAL) |
chanNick = -MAX_CHAN_VAL; |
if (chanRoll > MAX_CHAN_VAL) |
chanRoll = MAX_CHAN_VAL; |
if (chanRoll < -MAX_CHAN_VAL) |
chanRoll = -MAX_CHAN_VAL; |
|
if (chanNick > MAX_CHAN_VAL) |
chanNick = MAX_CHAN_VAL; |
if (chanNick < -MAX_CHAN_VAL) |
chanNick = -MAX_CHAN_VAL; |
if (chanRoll > MAX_CHAN_VAL) |
chanRoll = MAX_CHAN_VAL; |
if (chanRoll < -MAX_CHAN_VAL) |
chanRoll = -MAX_CHAN_VAL; |
} |
|
chanNickDiff = ( ( chanNick - chanNickPrev ) / 3) * 3; |
chanRollDiff = ( ( chanRoll - chanRollPrev ) / 3) * 3; |
|