Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 205 → Rev 206

/branches/v0.60_MicroMag3_Nick666/compass.c
23,9 → 23,7
SPCR = (1<<SPIE)|(1<<SPE)|(1<<MSTR)|(1<<SPR1);
SPSR = (1<<SPI2X);
DDRB |= (1<<PB2)|(1<<PB7)|(1<<PB5); // J8, SCK, MOSI Ausgang (MicroMag3)
DDRD |= (1<PD3);
PORTD &= ~(1<<PD3);
MM3.AXIS = MM3_X;
MM3.STATE = MM3_RESET;
}
46,12 → 44,12
case MM3_START_TRANSFER:
PORTB &= ~(1<<PB2); // J8 auf Low
if (MM3.AXIS == MM3_X) SPDR = 0x51; // Schreiben ins SPDR löst automatisch Übertragung (MOSI und MISO) aus
else if (MM3.AXIS == MM3_Y) SPDR = 0x52;
else if (MM3.AXIS == MM3_Z) SPDR = 0x53;
if (MM3.AXIS == MM3_X) SPDR = 0x41; // Schreiben ins SPDR löst automatisch Übertragung (MOSI und MISO) aus
else if (MM3.AXIS == MM3_Y) SPDR = 0x42;
else if (MM3.AXIS == MM3_Z) SPDR = 0x43;
else {MM3.STATE == MM3_IDLE;break;}
MM3.DRDY = SetDelay(16);
MM3.DRDY = SetDelay(8);
MM3.STATE = MM3_WAIT_DRDY;
break;
69,12 → 67,7
//SPI byte ready
SIGNAL (SIG_SPI)
//############################################################################
{
if (!(SPCR & (1<<MSTR)))
{
SPCR |= (1<<MSTR);
}
{
switch (MM3.STATE)
{
case MM3_DRDY:
/branches/v0.60_MicroMag3_Nick666/fc.c
141,9 → 141,9
AdNeutralNick= abs(MesswertNick);
AdNeutralRoll= abs(MesswertRoll);
AdNeutralGier= abs(MesswertGier);
NeutralAccY = 526;//abs(Mittelwert_AccRoll) / ACC_AMPLIFY;
NeutralAccX = 530;//abs(Mittelwert_AccNick) / ACC_AMPLIFY;
NeutralAccZ = 763;//Aktuell_az;
NeutralAccY = abs(Mittelwert_AccRoll) / ACC_AMPLIFY;
NeutralAccX = abs(Mittelwert_AccNick) / ACC_AMPLIFY;
NeutralAccZ = Aktuell_az;
Mess_IntegralNick = 0;
Mess_IntegralNick2 = 0;
595,8 → 595,8
if(IntegralFehlerNick < -500/DRIFT_FAKTOR) AdNeutralNick--;
if(IntegralFehlerRoll > 500/DRIFT_FAKTOR) AdNeutralRoll++;
if(IntegralFehlerRoll < -500/DRIFT_FAKTOR) AdNeutralRoll--;
if(Mess_Integral_Gier2 > 500/DRIFT_FAKTOR) AdNeutralGier--;
if(Mess_Integral_Gier2 <-500/DRIFT_FAKTOR) AdNeutralGier++;
//if(Mess_Integral_Gier2 > 500/DRIFT_FAKTOR) AdNeutralGier--;
//if(Mess_Integral_Gier2 <-500/DRIFT_FAKTOR) AdNeutralGier++;
ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
Mess_IntegralNick2 = IntegralNick;
Mess_IntegralRoll2 = IntegralRoll;
671,21 → 671,18
// DebugOut.Analog[0] = MesswertNick;
// DebugOut.Analog[1] = MesswertRoll;
// DebugOut.Analog[2] = MesswertGier;
DebugOut.Analog[5] = HoehenWert;
DebugOut.Analog[0] = IntegralNick / EE_Parameter.GyroAccFaktor;
DebugOut.Analog[1] = IntegralRoll / EE_Parameter.GyroAccFaktor;
DebugOut.Analog[2] = Mittelwert_AccNick;
DebugOut.Analog[3] = Mittelwert_AccRoll;
DebugOut.Analog[4] = MesswertGier;
DebugOut.Analog[5] = HoehenWert;
DebugOut.Analog[6] = (Mess_Integral_Hoch / 512);
DebugOut.Analog[7] = GasMischanteil;
DebugOut.Analog[8] = KompassValue;
signed int tmp_x,tmp_y,tmp_z;
tmp_x = (MM3.x_axis-361)*17;
tmp_y = (MM3.y_axis-70)*46;
tmp_z = (MM3.y_axis-53)*47;
DebugOut.Analog[9] = tmp_x;
DebugOut.Analog[10] = tmp_y;
DebugOut.Analog[11] = tmp_z;
// DebugOut.Analog[9] = SollHoehe;
// DebugOut.Analog[10] = Mess_Integral_Gier / 128;
// DebugOut.Analog[11] = KompassStartwert;
// DebugOut.Analog[10] = Parameter_Gyro_I;
// DebugOut.Analog[10] = EE_Parameter.Gyro_I;
// DebugOut.Analog[9] = KompassRichtung;
/branches/v0.60_MicroMag3_Nick666/timer0.c
36,7 → 36,7
if(beeptime > 1)
{
beeptime--;
PORTD &= ~(1<<PD2);//PORTD |= (1<<2);
PORTD |= (1<<2);
}
else
PORTD &= ~(1<<PD2);
43,7 → 43,6
 
if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV) MM3_timer0();
/*
if(PINC & 0x10)
{