1
0
mirror of git://projects.qi-hardware.com/ben-wpan.git synced 2024-11-05 15:55:20 +02:00
ben-wpan/atusb/fw2/spi.c
Werner Almesberger 1c004ee2d2 atusb/fw2: moved board-specific functions (SPI, RF reset) out of main()
- Makefile (OBJS): added spi.o
- spi.h, spi.c, atusb.c: moved SPI functions to new file
- spi.h (spi), spi.c (spi), atusb.c (main): renamed function "spi" to
  "spi_io"
- atusb.c (reset_rf, main): moved transceiver reset to separate function
2011-02-08 21:32:24 -03:00

45 lines
661 B
C

#include <stdint.h>
#include <avr/io.h>
#include "io.h"
#include "spi.h"
void spi_begin(void)
{
CLR(nSS);
}
uint8_t spi_io(uint8_t v)
{
// while (!(UCSR1A & 1 << UDRE1));
UDR1 = v;
while (!(UCSR1A & 1 << RXC1));
return UDR1;
}
void spi_end(void)
{
// while (!(UCSR1A & 1 << TXC1));
SET(nSS);
}
void spi_init(void)
{
OUT(SCLK);
OUT(MOSI);
OUT(nSS);
IN(MISO);
UBRR1 = 0; /* set bit rate to zero to begin */
UCSR1C = 1 << UMSEL11 | 1 << UMSEL10;
/* set MSPI, MSB first, SPI data mode 0 */
UCSR1B = 1 << RXEN1 | 1 << TXEN1;
/* enable receiver and transmitter */
UBRR1 = 0; /* reconfirm the bit rate */
}