/branches/thjac/V1_10/fc.c |
---|
610,7 → 610,7 |
if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 35-120) |
{ |
// Starten |
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) |
if( !MotorenEin && PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75 ) |
{ |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Einschalten |
/branches/thjac/V1_10/led.c |
---|
2,23 → 2,42 |
#include "main.h" |
#include "parameter.h" |
uint16_t LED1_Timing = 0; |
uint16_t LED2_Timing = 0; |
uint16_t LED1_Timing = 0; |
uint16_t LED2_Timing = 0; |
unsigned char J16Blinkcount = 0, J16Mask = 1; |
unsigned char J17Blinkcount = 0, J17Mask = 1; |
unsigned char lightsEnabled = 0; |
unsigned char forceEnabled = 0; |
extern char MotorenEin; |
void setJ16( char enabled ) { |
if( PARAM_LED_NEGATE ) |
enabled = !enabled; |
if( enabled && forceEnabled ) |
J16_ON; |
else |
J16_OFF; |
} |
void setJ17( char enabled ) { |
if( PARAM_LED_NEGATE ) |
enabled = !enabled; |
if( enabled && forceEnabled ) |
J17_ON; |
else |
J17_OFF; |
} |
// initializes the LED control outputs J16, J17 |
void LED_Init( void ) { |
// set PC2 & PC3 as output (control of J16 & J17) |
DDRC |= (1<<DDC2)|(1<<DDC3); |
J16_OFF; |
J17_OFF; |
setJ16( 0 ); |
setJ17( 0 ); |
J16Blinkcount = 0; J16Mask = 128; |
J17Blinkcount = 0; J17Mask = 128; |
} |
27,8 → 46,8 |
// called in UpdateMotors() every 2ms |
void LED_Update( void ) { |
static char delay = 0; |
static char delay = 0; |
if( !MotorenEin ) { |
/* Mit dem Gier-Stick links lassen sich die LED's ein- und ausschalten. |
54,7 → 73,9 |
if( PARAM_LED_ENGINE_ENABLED ) { |
lightsEnabled = MotorenEin; |
} |
forceEnabled = lightsEnabled; |
if( !delay-- ) { |
delay = 4; // 10ms Intervall |
65,7 → 86,15 |
// Grenze für Unterspannungswarnung erreicht? |
if( UBat < EE_Parameter.UnterspannungsWarnung ) { |
delay = 2; // 5ms Intervall |
// Erzwingt die Aktivierung der Ausgänge |
if( PARAM_LED_FORCE_WARNING_ENABLED ) |
forceEnabled = 1; |
if( PARAM_LED_WARNING_FAST_ENABLED ) { |
delay = 1; // 2,5ms Intervall |
} else { |
delay = 2; // 5ms Intervall |
} |
} |
} |
72,15 → 101,9 |
/* J16 |
*/ |
if( ( EE_Parameter.J16Timing > 250 ) && ( Parameter_J16Timing > 230 ) ) { |
if( EE_Parameter.J16Bitmask & 128 ) |
J16_ON; |
else |
J16_OFF; |
setJ16( EE_Parameter.J16Bitmask & 128 ); |
} else if( ( EE_Parameter.J16Timing > 250 ) && ( Parameter_J16Timing < 10 ) ) { |
if( EE_Parameter.J16Bitmask & 128 ) |
J16_OFF; |
else |
J16_ON; |
setJ16( !( EE_Parameter.J16Bitmask & 128 ) ); |
} else if( !J16Blinkcount-- ) { |
J16Blinkcount = Parameter_J16Timing-1; |
89,24 → 112,15 |
J16Mask = 128; |
else |
J16Mask /= 2; |
if( J16Mask & EE_Parameter.J16Bitmask ) |
J16_ON; |
else |
J16_OFF; |
setJ16( J16Mask & EE_Parameter.J16Bitmask ); |
} |
/* J17 |
*/ |
if( ( EE_Parameter.J17Timing > 250 ) && ( Parameter_J17Timing > 230 ) ) { |
if( EE_Parameter.J17Bitmask & 128 ) |
J17_ON; |
else |
J17_OFF; |
setJ17( EE_Parameter.J17Bitmask & 128 ); |
} else if( ( EE_Parameter.J17Timing > 250 ) && ( Parameter_J17Timing < 10 ) ) { |
if( EE_Parameter.J17Bitmask & 128 ) |
J17_OFF; |
else |
J17_ON; |
setJ17( !( EE_Parameter.J17Bitmask & 128 ) ); |
} else if( !J17Blinkcount-- ) { |
J17Blinkcount = Parameter_J17Timing-1; |
115,16 → 129,7 |
J17Mask = 128; |
else |
J17Mask /= 2; |
if( J17Mask & EE_Parameter.J17Bitmask ) |
J17_ON; |
else |
J17_OFF; |
setJ17( J17Mask & EE_Parameter.J17Bitmask ); |
} |
} |
if( !lightsEnabled ) { |
J16_OFF; |
J17_OFF; |
} |
} |
/branches/thjac/V1_10/makefile |
---|
5,7 → 5,7 |
#------------------------------------------------------------------- |
VERSION_MAJOR = 1 |
VERSION_MINOR = 10 |
VERSION_PATCH = 0 |
VERSION_PATCH = 1 |
VERSION_SERIAL_MAJOR = 10 # Serial Protocol |
VERSION_SERIAL_MINOR = 0 # Serial Protocol |
/branches/thjac/V1_10/parameter.h |
---|
54,6 → 54,19 |
*/ |
#define PARAM_LED_WARNING_ENABLED ( EE_Parameter.UserParam8 & 0x10 ) // 0=deaktiviert 1=Schnelles Blinken |
/* Erzwingt die Aktivierung der LED-Ausgänge im Fall einer |
* Unterspannungswarnung. |
*/ |
#define PARAM_LED_FORCE_WARNING_ENABLED ( EE_Parameter.UserParam6 & 0x01 ) |
/* Wenn gesetzt, wird der Pegel der Ausgänge J16/J17 vertauscht. |
*/ |
#define PARAM_LED_NEGATE ( EE_Parameter.UserParam6 & 0x02 ) |
/* Erhöht die Blinkfrequenz für die Unterspannungswarnung. |
*/ |
#define PARAM_LED_WARNING_FAST_ENABLED ( EE_Parameter.UserParam6 & 0x04 ) |
/* Wenn gesetzt, dann wird mit neutralisiertem Pitch-Stick und automatisch |
* zugeschalteter Höhenregelung geflogen. Damit bei versehentlich falscher |
* Konfiguration kein Schaden entsteht, muß zusätzlich beim Einschalten |
69,4 → 82,5 |
*/ |
#define PARAM_PITCH_RESTART_ENABLED ( EE_Parameter.UserParam8 & 0x40 ) // 0=deaktiviert 1=aktiviert |
#endif // PARAMETER_H |
/branches/thjac/V1_10/version.txt |
---|
157,7 → 157,7 |
Baseline V0.70d |
V0_10 T. Jachmann |
V1_10a T. Jachmann |
- Neutralstellung des Gasknüppels mit autom. Aktivierung der Höhenregelung in Neutralstellung |
- Automatische Kalibrierung (Ermittlung der Neutralstellung) des Gas-Sticks beim Einschalten der FC |
- Bleibt der Knüppel für ca. 0,5 in Neutralstellung, wird die autom. Höhenregelung aktiviert |
170,13 → 170,8 |
- Einschalten der LED-Ausgänge beim Starten der Motoren |
- Einführung eines zweiten MinGas-Parameters für Leerlaufgas nach Einschalten der Motoren |
V1_10a T. Jachmann |
- Baseline V0.71h |
- Alle Änderungen gegenüber der Original-SW sind jetzt per UserParameter konfigurierbar |
- Zwei Pitch-Modi; Es kann auch mit der Original-Pitch-Steuerung geflogen werden |
- Automatische Erkennung des Pitch-Modus beim Einschalten der FC oder per Konfiguration |
- Optimierter (weicherer) Übergang von autom. Höhenregelung auf manuelle Steuerung |
- Looping-Funktion wieder drin (jedoch nur für "+"-Formationsflug) |
- Signalisierung der Unterspannungswarnung über LED-Ausgänge |
- Möglichkeit des Schaltens der LED-Ausgänge über den Sender |
- Simulationsmodus: Deaktivieren der Motoren (wird später wieder entfernt!) |
V1_10b T. Jachmann |
- MK wird bei eingeschalteten Motoren mit Stick rechts unten nicht kalibriert |
- Die J16/J17-Frequenz kann bei Unterspannungswarnung erhöht werden |
- Die Pegel von J16/J17 lassen sich invertieren |
- Auch bei ausgeschalteten LED's können diese im Unterspannungsfall zwanghaft aktiviert werden |