Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1156 → Rev 1157

/branches/thjac/V1_11/pitch_inc.c
0,0 → 1,47
/* pitch_inc.c
*
* Copyright 2009 Klaus Rheinwald
*
*/
 
#include "main.h"
#include "parameter.h"
#include "fc.h"
#include "pitch.h"
 
#define STICK_FACTOR ((int16_t) 256)
//#define GAS_SCALE ((uint8_t) 4)
 
static int16_t stickValue = 0; // Aktueller Stick-Wert
 
int pitch_inc_value( void ) {
 
long rawStickValue = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]];
 
DebugOut.Analog[25] = rawStickValue;
 
rawStickValue = ((rawStickValue * rawStickValue * rawStickValue) / (PARAM_INC_GAS_SCALE+1)) / (PARAM_INC_GAS_SCALE+1);
 
// Neuer Stick-Wert
if (rawStickValue < 0 && stickValue < -INT16_MAX - rawStickValue) // ToDo
stickValue = -INT16_MAX;
else if (rawStickValue > 0 && stickValue > INT16_MAX - rawStickValue )
stickValue = INT16_MAX;
else if (rawStickValue != 0)
stickValue += rawStickValue;
DebugOut.Analog[26] = stickValue;
DebugOut.Analog[31] = stickValue / STICK_FACTOR;
 
return stickValue / STICK_FACTOR + 125;
}
 
void pitch_inc_init( void ) {
 
printf("\r\npitch_inc_init()");
 
stickValue = (int) MIN_GAS * STICK_FACTOR;
pitchValueFP = pitch_inc_value;
}