Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 308 → Rev 309

/branches/MergedVersionsByOsiair/alpha/v060SalvoKompassNick666MM3Gyro/compass.c
14,6 → 14,7
*/
 
#include "main.h"
#include "math.h"
 
MM3_struct MM3;
 
63,8 → 64,8
return; // Jetzt gehts weiter in SIGNAL (SIG_SPI)
case MM3_TILT: // Zeitnahe Speicherung der aktuellen Neigung in °
MM3.NickGrad = asin_i((float)Aktuell_ax/220*200);
MM3.RollGrad = asin_i((float)Aktuell_ay/220*200);
MM3.NickGrad = IntegralNick/(120*8);
MM3.RollGrad = IntegralRoll/(120*8);
MM3.AXIS = MM3_X;
MM3.STATE = MM3_RESET;
134,10 → 135,10
signed int heading;
// Berechung von sinus und cosinus
sin_nick = sin_i(MM3.NickGrad);
cos_nick = cos_i(MM3.NickGrad);
sin_roll = sin_i(MM3.RollGrad);
cos_roll = cos_i(MM3.RollGrad);
sin_nick = sin_f(MM3.NickGrad);
cos_nick = cos_f(MM3.NickGrad);
sin_roll = sin_f(MM3.RollGrad);
cos_roll = cos_f(MM3.RollGrad);
// Neigungskompensation
x_corr = (cos_nick * MM3.x_axis) + (((sin_roll * MM3.y_axis) - (cos_roll * MM3.z_axis)) * sin_nick);
/branches/MergedVersionsByOsiair/alpha/v060SalvoKompassNick666MM3Gyro/fc.c
284,9 → 284,9
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void DefaultKonstanten1(void)
{
EE_Parameter.Kanalbelegung[K_NICK] = 1;
EE_Parameter.Kanalbelegung[K_NICK] = 3;
EE_Parameter.Kanalbelegung[K_ROLL] = 2;
EE_Parameter.Kanalbelegung[K_GAS] = 3;
EE_Parameter.Kanalbelegung[K_GAS] = 1;
EE_Parameter.Kanalbelegung[K_GIER] = 4;
EE_Parameter.Kanalbelegung[K_POTI1] = 5;
EE_Parameter.Kanalbelegung[K_POTI2] = 6;
328,9 → 328,9
 
void DefaultKonstanten2(void)
{
EE_Parameter.Kanalbelegung[K_NICK] = 1;
EE_Parameter.Kanalbelegung[K_NICK] = 3;
EE_Parameter.Kanalbelegung[K_ROLL] = 2;
EE_Parameter.Kanalbelegung[K_GAS] = 3;
EE_Parameter.Kanalbelegung[K_GAS] = 1;
EE_Parameter.Kanalbelegung[K_GIER] = 4;
EE_Parameter.Kanalbelegung[K_POTI1] = 5;
EE_Parameter.Kanalbelegung[K_POTI2] = 6;
702,12 → 702,17
DebugOut.Analog[6] = (Mess_Integral_Hoch / 512);
DebugOut.Analog[7] = GasMischanteil;
DebugOut.Analog[8] = KompassValue;
DebugOut.Analog[12] = MM3_heading();
DebugOut.Analog[9] = MM3.x_axis;
DebugOut.Analog[10] = MM3.y_axis;
DebugOut.Analog[11] = MM3.z_axis;
DebugOut.Analog[9] = KompassRichtung;
DebugOut.Analog[10] = MM3_heading();
 
 
 
//DebugOut.Analog[9] = MM3.x_axis;
//DebugOut.Analog[10] = MM3.y_axis;
//DebugOut.Analog[11] = MM3.z_axis;
//DebugOut.Analog[13] = KompassRichtung;
 
 
}
 
 
/branches/MergedVersionsByOsiair/alpha/v060SalvoKompassNick666MM3Gyro/flight-ctrl_mega644_v0_60.aws
1,0 → 0,0
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA644"/><Files><File00000 Name="E:\hubi\ufo\mickrokopter\a Versions\version system\flightcontrol\branches\MergedVersionsByOsiair\alpha\v60SalvoKompassGyro\main.c" Position="322 71 1034 624" LineCol="17 0" State="Maximized"/><File00001 Name="E:\hubi\ufo\mickrokopter\a Versions\version system\flightcontrol\branches\MergedVersionsByOsiair\alpha\v60SalvoKompassGyro\compass.c" Position="333 69 1045 622" LineCol="51 0" State="Maximized"/><File00002 Name="E:\hubi\ufo\mickrokopter\a Versions\version system\flightcontrol\branches\MergedVersionsByOsiair\alpha\v60SalvoKompassGyro\math.c" Position="381 136 931 508" LineCol="229 0" State="Maximized"/><File00003 Name="E:\hubi\ufo\mickrokopter\a Versions\version system\flightcontrol\branches\MergedVersionsByOsiair\alpha\v60SalvoKompassGyro\analog.c" Position="336 71 1182 830" LineCol="0 0" State="Maximized"/></Files></AVRWorkspace>
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA644"/><Files><File00000 Name="E:\hubi\ufo\mickrokopter\a Versions\eigene versionen\Kompass + GPS\v60SalvoKompassGyro\main.c" Position="320 71 1032 624" LineCol="116 0" State="Maximized"/><File00001 Name="E:\hubi\ufo\mickrokopter\a Versions\eigene versionen\Kompass + GPS\v60SalvoKompassGyro\compass.c" Position="330 67 1396 826" LineCol="128 0" State="Maximized"/><File00002 Name="E:\hubi\ufo\mickrokopter\a Versions\eigene versionen\Kompass + GPS\v60SalvoKompassGyro\math.c" Position="375 132 925 504" LineCol="161 0" State="Maximized"/><File00003 Name="E:\hubi\ufo\mickrokopter\a Versions\eigene versionen\Kompass + GPS\v60SalvoKompassGyro\analog.c" Position="336 71 1182 830" LineCol="106 0" State="Maximized"/></Files></AVRWorkspace>
/branches/MergedVersionsByOsiair/alpha/v060SalvoKompassNick666MM3Gyro/math.c
182,8 → 182,12
return u.f;
}
 
// Kosinusfunktion im Gradmaß
float cos_f(signed int winkel)
{
return (sin_f(90-winkel));
}
 
 
// Sinusfunktion im Gradmaß
float sin_f(signed int winkel)
{
210,13 → 214,7
return (sinus*m*n);
}
 
// Kosinusfunktion im Gradmaß
float cos_f(signed int winkel)
{
return (sin_f(90-winkel));
}
 
 
const uint8_t pgm_asin[201] PROGMEM = {0,0,1,1,1,1,2,2,2,3,3,3,3,4,4,4,5,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9,10,10,10,11,11,11,12,12,12,12,13,13,13,14,14,14,14,15,15,15,16,16,16,17,17,17,17,18,18,18,19,19,19,20,20,20,20,21,21,21,22,22,22,23,23,23,24,24,24,25,25,25,25,26,26,26,27,27,27,28,28,28,29,29,29,30,30,30,31,31,31,32,32,32,33,33,33,34,34,34,35,35,35,36,36,37,37,37,38,38,38,39,39,39,40,40,41,41,41,42,42,42,43,43,44,44,44,45,45,46,46,46,47,47,48,48,49,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,59,59,60,60,61,62,62,63,64,64,65,66,66,67,68,68,69,70,71,72,73,74,75,76,77,79,80,82,84,90};
 
// Akurssinusfunktion im Gradmaß
229,4 → 227,3
return (pgm_read_byte(&pgm_asin[i]) * m);
}
 
/branches/MergedVersionsByOsiair/alpha/v060SalvoKompassNick666MM3Gyro/timer0.c
60,8 → 60,15
 
if (!cntKompass--) // Aufruf mit 25 Hz
{
KompassValue = MM3_heading();
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
KompassValue = (MM3_heading());
 
if (KompassValue < 0 ) { KompassValue = 380+MM3_heading();}
if (KompassValue > 359) { KompassValue = 359;}
 
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360);
 
cntKompass = 320;
}
}
/branches/MergedVersionsByOsiair/alpha/v060SalvoKompassNick666MM3Gyro/timer0.h
16,3 → 16,4
extern volatile unsigned int beeptime;
extern volatile unsigned int cntKompass;
extern int ServoValue;