Hallo.
Ich hab grad völlig am verzweifeln, da ich den SPI von Tiny26 nicht zum
laufen bekomm. kann mir jemand helfen ????
Hier ist mein code:
1 | char status;
|
2 | void init_spi(void)
|
3 | {
|
4 | DDRA |= (1<<PA6) | (1<<PA7);
|
5 | DDRB = _BV(PB0) | _BV(PB2); // setze SCK,MOSI,PB0 (SS) als Ausgang
|
6 | DDRB &= ~_BV(PB1); // setze MISO als Eingang
|
7 | PORTB = _BV(PB2); // SCK und PB0 high (ist mit SS am Slave
|
8 | verbunden)
|
9 | PORTA |= _BV(PA6) | _BV(PA7);
|
10 | //USICR = _BV(SPE) | _BV(MSTR) | _BV(SPR0); //Aktivierung des SPI,
|
11 | Master, Taktrate fck/16
|
12 | //status = SPSR;
|
13 | }
|
14 |
|
15 | void master_transmit (unsigned char data) {
|
16 | PORTA &= ~_BV(PA6); //SS am Slave Low --> Beginn der Übertragung
|
17 | USIDR = data; //Schreiben der Daten
|
18 | for (int i = 0; i< 8; i++)
|
19 | USICR = (1<<USIWM0)|(1<<USICS1)|(1<<USICLK)|(1<<USITC);
|
20 | while (!(USISR & (1<<USIOIF)));
|
21 | PORTB |= _BV(PB0); //SS High --> Ende der Übertragung
|
22 | }
|