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 |