#include #include "lib/mystd.h" #include "lib/spi.h" void spi_init(void) { // set the correct pins as output SPI_DDR |= BV(CS) | BV(MOSI) | BV(SCK); // enable SPI, set as master, and clock to fosc/128 SPCR = BV(SPE) | BV(MSTR) | BV(SPR1) | BV(SPR0); } void spi_uninit(void) { SPCR = 0; } t_error spi_write(uint8_t data) { uint16_t o = 0; // load data into register SPDR = data; // Wait for transmission complete while (!(SPSR & BV(SPIF)) && o < 32768) o++; if (o >= 32768) return ERROR; return NO_ERROR; }