/* * GccApplication1.c * * Author : admin */ #include #define F_CPU 16000000 #include #include #define CS_BIT 0x10 #define CS_LOW PORTA_OUTCLR = CS_BIT; #define CS_HIGH PORTA_OUTSET = CS_BIT; void spi_init (void) { // Fleissaufgabe } uint8_t spi_xfer (uint8_t val) { SPI0_DATA = val; while ( (SPI0_INTFLAGS & SPI_RXCIE_bm) == 0 ) { // wait }; return SPI0_DATA; } void spi_write (uint8_t *buff, uint8_t count) { CS_LOW; while ( count != 0 ) { spi_xfer (*buff); buff++; count--; }; CS_HIGH; } void spi_read (uint8_t *buff, uint8_t count) { CS_LOW; while ( count != 0 ) { *buff = spi_xfer (0); buff++; count--; }; CS_HIGH; } int main (void) { char mybuff[] = "Hello world .....\r\n"; uint8_t ll; spi_init (); while (1) { ll = strlen (mybuff); spi_write ((uint8_t*)&mybuff, ll); _delay_ms(100); } }