/branches/dongfang_FC_rewrite/configuration.h |
---|
65,8 → 65,8 |
uint8_t StickP; // Value : 1-6 |
uint8_t StickD; // Value : 0-64 |
uint8_t StickYawP; // Value : 1-20 |
uint8_t GasMin; // Value : 0-32 |
uint8_t GasMax; // Value : 33-250 |
uint8_t MinThrottle; // Value : 0-32 |
uint8_t MaxThrottle; // Value : 33-250 |
uint8_t GyroAccFactor; // Value : 1-64 |
uint8_t CompassYawEffect; // Value : 0-32 |
uint8_t GyroP; // Value : 10-250 |
73,7 → 73,7 |
uint8_t GyroI; // Value : 0-250 |
uint8_t GyroD; // Value : 0-250 |
uint8_t LowVoltageWarning; // Value : 0-250 |
uint8_t EmergencyGas; // Value : 0-250 //Gaswert bei Empängsverlust |
uint8_t EmergencyGas; // Value : 0-250 //Gaswert bei Emp�ngsverlust |
uint8_t EmergencyGasDuration; // Value : 0-250 // Zeitbis auf EmergencyGas geschaltet wird, wg. Rx-Problemen |
uint8_t UfoArrangement; // x oder + Formation |
uint8_t IFactor; // Value : 0-250 |
88,14 → 88,14 |
uint8_t ServoPitchMin; // Value : 0-250 // Anschlag |
uint8_t ServoPitchMax; // Value : 0-250 // Anschlag |
uint8_t ServoRefresh; // Value: 0-250 // Refreshrate of servo pwm output |
uint8_t LoopGasLimit; // Value: 0-250 max. Gas während Looping |
uint8_t LoopThreshold; // Value: 0-250 Schwelle für Stickausschlag |
uint8_t LoopHysteresis; // Value: 0-250 Hysterese für Stickausschlag |
uint8_t LoopGasLimit; // Value: 0-250 max. Gas w�hrend Looping |
uint8_t LoopThreshold; // Value: 0-250 Schwelle f�r Stickausschlag |
uint8_t LoopHysteresis; // Value: 0-250 Hysterese f�r Stickausschlag |
uint8_t AxisCoupling1; // Value: 0-250 Faktor, mit dem Yaw die Achsen Roll und Nick koppelt (NickRollMitkopplung) |
uint8_t AxisCoupling2; // Value: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden |
uint8_t AxisCouplingYawCorrection;// Value: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden |
uint8_t AngleTurnOverPitch; // Value: 0-250 180°-Punkt |
uint8_t AngleTurnOverRoll; // Value: 0-250 180°-Punkt |
uint8_t AngleTurnOverPitch; // Value: 0-250 180�-Punkt |
uint8_t AngleTurnOverRoll; // Value: 0-250 180�-Punkt |
uint8_t GyroAccTrim; // 1/k (Koppel_ACC_Wirkung) |
uint8_t DriftComp; // limit for gyrodrift compensation |
uint8_t DynamicStability; // PID limit for Attitude controller |
/branches/dongfang_FC_rewrite/eeprom.c |
---|
113,8 → 113,8 |
staticParams.StickP = 12; |
staticParams.StickD = 16; |
staticParams.StickYawP = 12; |
staticParams.GasMin = 8; |
staticParams.GasMax = 230; |
staticParams.MinThrottle = 8; |
staticParams.MaxThrottle = 230; |
staticParams.CompassYawEffect = 128; |
staticParams.GyroP = 80; |
staticParams.GyroI = 100; |
/branches/dongfang_FC_rewrite/flight.c |
---|
1,28 → 1,28 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) 04.2007 Holger Buss |
// + Nur für den privaten Gebrauch |
// + Nur f�r den privaten Gebrauch |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Es gilt f�r das gesamte Projekt (Hardware, Software, Bin�rfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur f�r den privaten (nicht-kommerziellen) Gebrauch zul�ssig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Best�ckung und Verkauf von Platinen oder Baus�tzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder ver�ffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright m�ssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de" |
// + auf anderen Webseiten oder sonstigen Medien ver�ffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de" |
// + eindeutig als Ursprung verlinkt werden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion |
// + Keine Gew�hr auf Fehlerfreiheit, Vollst�ndigkeit oder Funktion |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// + Wir �bernehmen keinerlei Haftung f�r direkte oder indirekte Personen- oder Sachsch�den |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// + mit unserer Zustimmung zul�ssig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
283,7 → 283,7 |
controlMixer_update(); |
throttleTerm = controlThrottle; |
if(throttleTerm < staticParams.GasMin + 10) throttleTerm = staticParams.GasMin + 10; |
if(throttleTerm < staticParams.MinThrottle + 10) throttleTerm = staticParams.MinThrottle + 10; |
/************************************************************************/ |
/* RC-signal is bad */ |
459,13 → 459,13 |
// if we are in the lift off condition. Hmmmmmm when is throttleTerm == 0 anyway??? |
if((isFlying > 1) && (isFlying < 50) && (throttleTerm > 0)) |
isFlying = 1; // keep within lift off condition |
throttleTerm = staticParams.GasMin; // reduce gas to min to avoid lift of |
throttleTerm = staticParams.MinThrottle; // reduce gas to min to avoid lift of |
} |
/* |
* Height control was here. |
*/ |
if(throttleTerm > staticParams.GasMax - 20) throttleTerm = (staticParams.GasMax - 20); |
if(throttleTerm > staticParams.MaxThrottle - 20) throttleTerm = (staticParams.MaxThrottle - 20); |
throttleTerm *= STICK_GAIN; |
/* |
486,7 → 486,7 |
CHECK_MIN_MAX(yawTerm, - (MIN_YAWGAS / 2), (MIN_YAWGAS / 2)); |
} |
tmp_int = staticParams.GasMax * STICK_GAIN; |
tmp_int = staticParams.MaxThrottle * STICK_GAIN; |
/* |
* throttle-MaxThrottle <= yawTerm <= MaxThrottle-throttle |
539,7 → 539,7 |
tmp += ((int32_t)yawTerm * Mixer.Motor[i][MIX_YAW]) / 64L; |
motorFilters[i] = motorFilter(tmp, motorFilters[i]); |
tmp = motorFilters[i] / STICK_GAIN; |
CHECK_MIN_MAX(tmp, staticParams.GasMin, staticParams.GasMax); |
CHECK_MIN_MAX(tmp, staticParams.MinThrottle, staticParams.MaxThrottle); |
Motor[i].SetPoint = tmp; |
} |
else Motor[i].SetPoint = 0; |
/branches/dongfang_FC_rewrite/flight2.c |
---|
1,28 → 1,28 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) 04.2007 Holger Buss |
// + Nur für den privaten Gebrauch |
// + Nur f�r den privaten Gebrauch |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Es gilt f�r das gesamte Projekt (Hardware, Software, Bin�rfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur f�r den privaten (nicht-kommerziellen) Gebrauch zul�ssig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Best�ckung und Verkauf von Platinen oder Baus�tzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder ver�ffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright m�ssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de" |
// + auf anderen Webseiten oder sonstigen Medien ver�ffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de" |
// + eindeutig als Ursprung verlinkt werden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion |
// + Keine Gew�hr auf Fehlerfreiheit, Vollst�ndigkeit oder Funktion |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// + Wir �bernehmen keinerlei Haftung f�r direkte oder indirekte Personen- oder Sachsch�den |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// + mit unserer Zustimmung zul�ssig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
283,7 → 283,7 |
controlMixer_update(); |
throttleTerm = controlThrottle; |
if(throttleTerm < staticParams.GasMin + 10) throttleTerm = staticParams.GasMin + 10; |
if(throttleTerm < staticParams.MinThrottle + 10) throttleTerm = staticParams.MinThrottle + 10; |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// RC-signal is bad |
493,7 → 493,7 |
// if we are in the lift off condition. Hmmmmmm when is throttleTerm == 0 anyway??? |
if((isFlying > 1) && (isFlying < 50) && (throttleTerm > 0)) |
isFlying = 1; // keep within lift off condition |
throttleTerm = staticParams.GasMin; // reduce gas to min to avoid lift of |
throttleTerm = staticParams.MinThrottle; // reduce gas to min to avoid lift of |
} |
/* |
500,7 → 500,7 |
* Height control was here. |
*/ |
if(throttleTerm > staticParams.GasMax - 20) throttleTerm = (staticParams.GasMax - 20); |
if(throttleTerm > staticParams.MaxThrottle - 20) throttleTerm = (staticParams.MaxThrottle - 20); |
throttleTerm *= STICK_GAIN; |
/* |
515,7 → 515,7 |
CHECK_MIN_MAX(yawTerm, - (MIN_YAWGAS / 2), (MIN_YAWGAS / 2)); |
} |
tmp_int = staticParams.GasMax * STICK_GAIN; |
tmp_int = staticParams.MaxThrottle * STICK_GAIN; |
CHECK_MIN_MAX(yawTerm, -(tmp_int - throttleTerm), (tmp_int - throttleTerm)); |
/* |
564,7 → 564,7 |
tmp += ((int32_t)yawTerm * Mixer.Motor[i][MIX_YAW]) / 64L; |
motorFilters[i] = motorFilter(tmp, motorFilters[i]); |
tmp = motorFilters[i] / STICK_GAIN; |
CHECK_MIN_MAX(tmp, staticParams.GasMin, staticParams.GasMax); |
CHECK_MIN_MAX(tmp, staticParams.MinThrottle, staticParams.MaxThrottle); |
Motor[i].SetPoint = tmp; |
} |
else Motor[i].SetPoint = 0; |
/branches/dongfang_FC_rewrite/readme.txt |
---|
12,8 → 12,8 |
Features: |
- Readable, reasonably documented source code makes it easy to implement the features you |
want yourself (and to remove those you don't like). |
- The code was broken into smaller pieces and modularized. Global variables are (almost) |
only written to by one module. |
- The code was broken into smaller pieces and modularized (fc.c in particular). |
Global variables are (almost) only written to by one module each. |
- New or experimental hardware is easy to incorporate. Gyro and acc. meter axes are reversible, |
and resetting the sensitivity actually works. |
22,4 → 22,9 |
- Compass support temporarily removed (should be added again later). |
- Parts of menu.c are dummy implemented or removed. It is possible that menu.c and all use |
of printf will be removed later, and replaced by something else (debud on steroids). |
- Control rate limiter removed. |
- Control rate limiter removed. |
- Altitude control temporarily removed (should be added again later). |
- Automatic board detection removed. This firmware is for compiling yourself, possibly |
with nonstandard or experimental hardware. That conflicts with automatically switching |
between standard hardware versions, so the feature was removed. Instead, is was made |
easy to choose gyro types etc. in the makefile. |