4 #define SPIDONTCARE (0x00)
6 /* init as SPI-Master */
8 // SCK, MOSI as outputs
9 SPIDDR
|= (1<<SPISCK
)|(1<<SPISS
)|(1<<SPIMOSI
);
11 SPIDDR
&= ~(1<<SPIMISO
);
13 // fck/128 = 16Mhz/128 = 125kHz
14 // INIT interface, Master, set clock rate fck/128
15 SPCR
= (1<<SPE
)|(1<<MSTR
)|(1<<SPR0
)|(1<<SPR1
);
18 uint8_t spi_readwrite(uint8_t data
) {
19 // set data to send into SPI data register
21 // Wait for transmission complete
22 while(!(SPSR
& (1<<SPIF
)));
23 // return data read from SPI
27 void spi_write(uint8_t data
) {
28 // set data to send into SPI data register
30 // Wait for transmission complete
31 while(!(SPSR
& (1<<SPIF
)));
34 uint8_t spi_read(void) {
35 return spi_readwrite(SPIDONTCARE
);