Subversion Repositories FlightCtrl

Rev

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

Rev 279 Rev 280
Line 77... Line 77...
77
SIGNAL (SIG_SPI)
77
SIGNAL (SIG_SPI)
78
//############################################################################
78
//############################################################################
79
{      
79
{      
80
        switch (MM3.STATE)
80
        switch (MM3.STATE)
81
        {      
81
        {      
82
        case MM3_DRDY:
-
 
83
                        // 1. Byte ist da, abspeichern, an die MSB-Stelle rücken und Übertragung von 2. Byte auslösen
82
        case MM3_DRDY:          // 1. Byte ist da, abspeichern, an die MSB-Stelle rücken                
84
                if (MM3.AXIS == MM3_X) {MM3.x_axis=SPDR; MM3.x_axis<<=8; SPDR=0x00; MM3.STATE=MM3_X_BYTE2; return;}
83
                if (MM3.AXIS == MM3_X)
-
 
84
                {
-
 
85
                        MM3.x_axis = SPDR;
-
 
86
                        MM3.x_axis <<= 8;
-
 
87
                }
-
 
88
                else if (MM3.AXIS == MM3_Y)
-
 
89
                {
-
 
90
                        MM3.y_axis = SPDR;
-
 
91
                        MM3.y_axis <<= 8;
-
 
92
                }
85
                if (MM3.AXIS == MM3_Y) {MM3.y_axis=SPDR; MM3.y_axis<<=8; SPDR=0x00; MM3.STATE=MM3_Y_BYTE2; return;}
93
                else            // if (MM3.AXIS == MM3_Z)
-
 
94
                {
-
 
95
                        MM3.z_axis = SPDR;
-
 
96
                        MM3.z_axis <<= 8;
-
 
97
                }
-
 
98
               
86
                if (MM3.AXIS == MM3_Z) {MM3.z_axis=SPDR; MM3.z_axis<<=8; SPDR=0x00; MM3.STATE=MM3_Z_BYTE2; return;}
99
                SPDR=0x00;              // Übertragung von 2. Byte auslösen
-
 
100
                MM3.STATE=MM3_BYTE2;
-
 
101
                return;
Line 87... Line 102...
87
       
102
               
-
 
103
        case MM3_BYTE2:         // 2. Byte der entsprechenden Achse ist da              
-
 
104
                if (MM3.AXIS == MM3_X)
88
        case MM3_X_BYTE2:       // 2. Byte der entsprechenden Achse ist da.             
105
                {
89
                MM3.x_axis |= SPDR;
106
                        MM3.x_axis |= SPDR;
90
                MM3.x_axis -= OFF_X;    // Sofort Offset aus der Kalibrierung berücksichtigen
107
                        MM3.x_axis -= OFF_X;    // Sofort Offset aus der Kalibrierung berücksichtigen
91
                MM3.AXIS = MM3_Y;
108
                        MM3.AXIS = MM3_Y;
92
                MM3.STATE = MM3_RESET;
-
 
93
                return;
109
                        MM3.STATE = MM3_RESET;
94
       
110
                }
-
 
111
                else if (MM3.AXIS == MM3_Y)
95
        case MM3_Y_BYTE2:
112
                {
96
                MM3.y_axis |= SPDR;            
113
                        MM3.y_axis |= SPDR;            
97
                MM3.y_axis -= OFF_Y;
114
                        MM3.y_axis -= OFF_Y;
98
                MM3.AXIS = MM3_Z;
115
                        MM3.AXIS = MM3_Z;
99
                MM3.STATE = MM3_RESET;
116
                        MM3.STATE = MM3_RESET;
-
 
117
                }
100
                return;
118
                else            // if (MM3.AXIS == MM3_Z) 
101
       
-
 
102
        case MM3_Z_BYTE2:
119
                {
103
                MM3.z_axis |= SPDR;
120
                        MM3.z_axis |= SPDR;
104
                MM3.z_axis -= OFF_Z;
121
                        MM3.z_axis -= OFF_Z;
-
 
122
                        MM3.STATE = MM3_TILT;
-
 
123
                }
105
                MM3.STATE = MM3_TILT;
124
               
106
                return;
125
                return;
107
        }
126
        }
Line 108... Line 127...
108
}
127
}