Subversion Repositories FlightCtrl

Rev

Rev 464 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 464 Rev 512
Line 24... Line 24...
24
//############################################################################
24
//############################################################################
25
// Initialisierung
25
// Initialisierung
26
void init_MM3(void)
26
void init_MM3(void)
27
//############################################################################
27
//############################################################################
28
{
28
{
-
 
29
        // SPI-Schnittstelle initialisieren
29
        SPCR = (1<<SPIE)|(1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0);        //Interrupt an, Master, 156 kHz Oszillator
30
        SPCR = (1<<SPIE)|(1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0);        // Interrupt an, Master, 156 kHz Oszillator
30
        //SPSR = (1<<SPI2X);
-
 
31
       
31
 
32
    DDRB |= (1<<PB7)|(1<<PB5)|(1<<PB2); // J8, MOSI, SCK Ausgang
32
    DDRB |= (1<<PB7)|(1<<PB5)|(1<<PB2); // J8, MOSI, SCK Ausgang
Line 33... Line 33...
33
       
33
       
Line -... Line 34...
-
 
34
        PORTD &= ~(1<<PD3);     // J5 permanent auf Low
34
        PORTD &= ~(1<<PD3);     // J5 auf Low
35
       
35
       
36
        // Init Statemachine
Line 36... Line 37...
36
        MM3.AXIS = MM3_X;
37
        MM3.AXIS = MM3_X;
37
        MM3.STATE = MM3_RESET;
38
        MM3.STATE = MM3_RESET;
Line 54... Line 55...
54
                return;
55
                return;
Line 55... Line 56...
55
               
56
               
56
        case MM3_START_TRANSFER:
57
        case MM3_START_TRANSFER:
Line 57... Line 58...
57
                PORTB &= ~(1<<PB2);     // J8 auf Low (war ~125 µs auf High)            
58
                PORTB &= ~(1<<PB2);     // J8 auf Low (war ~125 µs auf High)            
58
               
59
               
59
                if (MM3.AXIS == MM3_X) SPDR = 0x31;                     // Schreiben ins SPDR löst automatisch Übertragung (MOSI und MISO) aus
60
                if (MM3.AXIS == MM3_X) SPDR = 0x31;                     // Schreiben ins SPDR löst automatisch SPI-Übertragung (MOSI und MISO) aus
Line 60... Line 61...
60
                else if (MM3.AXIS == MM3_Y) SPDR = 0x32;                // Micromag Period Select ist auf 256 (0x30)
61
                else if (MM3.AXIS == MM3_Y) SPDR = 0x32;                // Micromag Period Select ist auf 256 (0x30)
61
                else SPDR = 0x33;       //if (MM3.AXIS == MM3_Z)        // 1: x-Achse, 2: Y-Achse, 3: Z-Achse
62
                else SPDR = 0x33;       //if (MM3.AXIS == MM3_Z)        // 1: x-Achse, 2: Y-Achse, 3: Z-Achse