Hallo Zusammen,

hat den keiner eine Idee, woran es liegen kann ?

Ich habe jetzt auch mal diese Routinen verwendet, welche mir den gleichen Effekt gezeigt haben:

Code:
void getAtomicTiltHeading(void)
{
    Angle[PITCH] = asin(-Atomic_accel[X]);
    Angle[ROLL]= asin(Atomic_accel[Y]/cos(Angle[PITCH]));

    float magXcomp = (LM303_magnet[X]*cos(Angle[PITCH]))+(LM303_magnet[Z]*sin(Angle[PITCH]));
    float magYcomp = (LM303_magnet[X]*sin(Angle[ROLL])*sin(Angle[PITCH]))+(LM303_magnet[Y]*cos(Angle[ROLL]))-(LM303_magnet[Z]*sin(Angle[ROLL]) * cos(Angle[PITCH]));

    Angle[HEADING] = atan2(magYcomp,magXcomp) + M_PI_2;
}

//==================================================================
//            calculate the actual heading of LM300 Chip
//==================================================================

void getLM303TiltHeading(void)
{
    LM303[PITCH] = asin(-LM303_accel[X]);
    LM303[ROLL]= asin(LM303_accel[Y]/cos(LM303[PITCH]));

    float magXcomp = (LM303_magnet[X]*cos(LM303[PITCH]))+(LM303_magnet[Z]*sin(LM303[PITCH]));
    float magYcomp = (LM303_magnet[X]*sin(LM303[ROLL])*sin(LM303[PITCH]))+(LM303_magnet[Y]*cos(LM303[ROLL]))-(LM303_magnet[Z]*sin(LM303[ROLL]) * cos(LM303[PITCH]));

    LM303[HEADING] = atan2(magYcomp,magXcomp) + M_PI_2;
}
Ausserdem dachte ich mal, ich verwendet die Standard Routine LSM303-Klasse von Pololu zu Testzwecken. Hier habe ich aber Probleme mit der Klasse Vector. Dachte AVR Studio 7 wäre eine Lösung, musste aber auch hier passen.

Viele Grüße

Richard