Rev 1112 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
/* pitch.c
*
* Copyright 2009 Thomas Jachmann
*
* Pitch-Steuerung
*/
#include "main.h"
#include "parameter.h"
#include "pitch_neutral.h"
#include "pitch_md.h"
#include "pitch.h"
// Zeiger auf den durch das Setting bestimmten Pitch-Steuerungsalgorithmus
int (* pitch_value_ptr)( void );
// Prototyp
int pitch_mk_value( void );
/*
* Führt die Initialisierung der Pitch-Steuerung durch. Diese Funktion
* wird nach jeder Setting-Auswahl sowie nach jeder Setting-Änderung
* aufgerufen.
*/
void pitch_init( void ) {
// FIXME Funktioniert noch nicht
switch( PARAM_PITCH_MODE ) {
case PARAM_PITCH_MODE_NEUTRAL:
pitch_value_ptr = pitch_neutral_value;
break;
case PARAM_PITCH_MODE_MD:
pitch_value_ptr = pitch_md_value;
break;
default:
pitch_value_ptr = pitch_mk_value;
}
// Hier können weitere Initialisierungen folgen
}
int pitch_value( void ) {
switch( PARAM_PITCH_MODE ) {
case PARAM_PITCH_MODE_NEUTRAL:
return pitch_neutral_value();
case PARAM_PITCH_MODE_MD:
return pitch_md_value();
default:
return pitch_mk_value();
}
}
/*
* Führt eine Pitch-Berechnung aus, die der Original-SW entspricht.
*/
int pitch_mk_value( void ) {
register int stickValue = PPM_in[ EE_Parameter.Kanalbelegung[ K_GAS ] ];
register int pitchCount = stickValue + 120;
DebugOut.Analog[26] = stickValue;
DebugOut.Analog[28] = pitchCount;
return pitchCount;
}