Subversion Repositories FlightCtrl

Rev

Rev 260 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 260 Rev 261
Line 58... Line 58...
58
                MM3.STATE = MM3_WAIT_DRDY;
58
                MM3.STATE = MM3_WAIT_DRDY;
59
                break;
59
                break;
Line 60... Line 60...
60
       
60
       
61
        case MM3_WAIT_DRDY:
61
        case MM3_WAIT_DRDY:
62
                if (CheckDelay(MM3.DRDY)) {SPDR = 0x00;MM3.STATE = MM3_DRDY;} // Irgendwas ins SPDR, damit Übertragung ausgelöst wird, wenn Wartezeit vorbei
62
                if (CheckDelay(MM3.DRDY)) {SPDR = 0x00;MM3.STATE = MM3_DRDY;} // Irgendwas ins SPDR, damit Übertragung ausgelöst wird, wenn Wartezeit vorbei
Line -... Line 63...
-
 
63
                break;          // Jetzt gehts weiter in SIGNAL (SIG_SPI)
-
 
64
       
-
 
65
        case MM3_TILT:          // Zeitnahe Speicherung der aktuellen Neigung in °
-
 
66
                MM3.NickGrad = IntegralNick/(EE_Parameter.UserParam1*8);
63
                break;
67
                MM3.RollGrad = IntegralRoll/(EE_Parameter.UserParam2*8);
64
       
68
                MM3.AXIS = MM3_X;
65
        case MM3_IDLE:         
69
                MM3.STATE = MM3_RESET;
66
                break;
70
                break;
Line 82... Line 86...
82
                if (MM3.AXIS == MM3_Z) {MM3.z_axis=SPDR; MM3.z_axis<<=8; SPDR=0x00; MM3.STATE=MM3_Z_BYTE2; break;}
86
                if (MM3.AXIS == MM3_Z) {MM3.z_axis=SPDR; MM3.z_axis<<=8; SPDR=0x00; MM3.STATE=MM3_Z_BYTE2; break;}
Line 83... Line 87...
83
       
87
       
84
        case MM3_X_BYTE2:       // 2. Byte der entsprechenden Achse ist da.             
88
        case MM3_X_BYTE2:       // 2. Byte der entsprechenden Achse ist da.             
85
                MM3.x_axis |= SPDR;
89
                MM3.x_axis |= SPDR;
86
                MM3.x_axis -= OFF_X;    // Sofort Offset aus der Kalibrierung berücksichtigen
-
 
87
                MM3.NickGrad = IntegralNick/(EE_Parameter.UserParam1*8);        // Zeitnahe Speicherung der aktuellen Neigung in °
90
                MM3.x_axis -= OFF_X;    // Sofort Offset aus der Kalibrierung berücksichtigen
88
                MM3.AXIS = MM3_Y;
91
                MM3.AXIS = MM3_Y;
89
                MM3.STATE = MM3_RESET;
92
                MM3.STATE = MM3_RESET;
Line 90... Line 93...
90
                break;
93
                break;
91
       
94
       
92
        case MM3_Y_BYTE2:
95
        case MM3_Y_BYTE2:
93
                MM3.y_axis |= SPDR;            
-
 
94
                MM3.y_axis -= OFF_Y;
96
                MM3.y_axis |= SPDR;            
95
                MM3.RollGrad = IntegralRoll/(EE_Parameter.UserParam2*8);        // Zeitnahe Speicherung der aktuellen Neigung in °
97
                MM3.y_axis -= OFF_Y;
96
                MM3.AXIS = MM3_Z;
98
                MM3.AXIS = MM3_Z;
Line 97... Line 99...
97
                MM3.STATE = MM3_RESET;
99
                MM3.STATE = MM3_RESET;
98
                break;
100
                break;
99
       
101
       
100
        case MM3_Z_BYTE2:
-
 
101
                MM3.z_axis |= SPDR;
102
        case MM3_Z_BYTE2:
102
                MM3.z_axis -= OFF_Z;
103
                MM3.z_axis |= SPDR;
103
                MM3.AXIS = MM3_X;
104
                MM3.z_axis -= OFF_Z;
104
                MM3.STATE = MM3_RESET;
105
                MM3.STATE = MM3_TILT;
Line 105... Line 106...
105
                break; 
106
                break;