Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 483 → Rev 484

/branches/v0.60_MicroMag3_Nick666/v0.66c/compass.c
58,7 → 58,7
if (MM3.AXIS == MM3_X) SPDR = 0x31; // Schreiben ins SPDR löst automatisch Übertragung (MOSI und MISO) aus
else if (MM3.AXIS == MM3_Y) SPDR = 0x32; // Micromag Period Select ist auf 256 (0x30)
else SPDR = 0x33; //if (MM3.AXIS == MM3_Z) // 1: x-Achse, 2: Y-Achse, 3: Z-Achse
else if (MM3.AXIS == MM3_Z) SPDR = 0x33; // 1: x-Achse, 2: Y-Achse, 3: Z-Achse
MM3.DRDY = SetDelay(8); // Laut Datenblatt max. Zeit bis Messung fertig (bei PS 256 eigentlich 4 ms)
MM3.STATE = MM3_WAIT_DRDY;
103,7 → 103,7
MM3.y_axis = wert;
MM3.AXIS = MM3_Z;
break;
default: //case MM3_Z:
case MM3_Z:
MM3.z_axis = wert;
MM3.AXIS = MM3_X;
}
/branches/v0.60_MicroMag3_Nick666/v0.66c/fc.c
858,7 → 858,6
if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)
{
int w,v;
static char SignalSchlecht = 0;
if (!updKompass--) // Aufruf mit ~10 Hz
{
869,7 → 868,7
w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln
v = abs(IntegralRoll /512);
if (v > w) w = v; // grösste Neigung ermitteln
if (w < 40 && NeueKompassRichtungMerken && !SignalSchlecht)
if (w < 40 && NeueKompassRichtungMerken)
{
KompassStartwert = KompassValue;
NeueKompassRichtungMerken = 0;
878,10 → 877,9
w = Parameter_KompassWirkung - w; // Wirkung ggf drosseln
if (w > 0)
{
if (!SignalSchlecht) Mess_Integral_Gier += (KompassRichtung * w) / 32; // nach Kompass ausrichten
else SignalSchlecht--;
Mess_Integral_Gier += (KompassRichtung * w) / 32; // nach Kompass ausrichten
}
else SignalSchlecht = 250; // so lange das Signal taub stellen --> ca. 1/2 sek
else beeptime = 500;
}
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/branches/v0.60_MicroMag3_Nick666/v0.66c/menu.c
27,7 → 27,7
 
void Menu(void)
{
static unsigned char MaxMenue = 10,MenuePunkt=0;
static unsigned char MaxMenue = 12,MenuePunkt=0;
if(RemoteTasten & KEY1) { if(MenuePunkt) MenuePunkt--; else MenuePunkt = MaxMenue; LcdClear(); }
120,6 → 120,18
LCD_printfxy(0,2,"Stellung: %3i",ServoValue);
LCD_printfxy(0,3,"Range:%3i-%3i",EE_Parameter.ServoNickMin,EE_Parameter.ServoNickMax);
break;
case 11:
LCD_printfxy(0,0,"MM3 Off");
LCD_printfxy(0,1,"X_Offset: %3i",MM3_calib.X_off);
LCD_printfxy(0,2,"Y_Offset: %3i",MM3_calib.Y_off);
LCD_printfxy(0,3,"Z_Offset: %3i",MM3_calib.Z_off);
break;
case 12:
LCD_printfxy(0,0,"MM3 Range");
LCD_printfxy(0,1,"X_Range: %4i",MM3_calib.X_range);
LCD_printfxy(0,2,"Y_Range: %4i",MM3_calib.Y_range);
LCD_printfxy(0,3,"Z_Range: %4i",MM3_calib.Z_range);
break;
default: MaxMenue = MenuePunkt - 1;
MenuePunkt = 0;
break;