/*================================================================================================ spi.c SiWiCom copyright 2006 v1.0 (2006-05-11) Name: Joakim Nilsson E-mail: mail@jopin.se Name: Christoffer Martinsson E-mail: cm@cmtec.se Description: Routines for SPI interface. Basic design by CM. Modifyed and extended by JN for project SiWiCom 2006 SPI configuration is done by hardware.h witch must contain definitions for: (X=letter i.e PORTX=PORTB, n=number i.e PXn=PB4) SPI_PORT PORTX (Example: #define SPI_PORT PORTB) // PORTB as SPI-port SPI_DDR DDRX (Example: #define SPI_DDR DDRB) // DDRB as direction for SPI pindirection MOSI PXn (Example: #define MOSI PB3) // Master Out - Slave In MISO PXn (Example: #define MISO PB4) // Master In - Slave Out SCK PXn (Example: #define SCK PB5 // Serial Clock Processor as SPI-master or SPI-slave, example: #define _SPI_MASTER_ //#define _SPI_SLAVE_ If processor is defined as _SPI_MASTER_, Chip select port(s) (at least one, max 8) must be asigned as: #define SPI_CS0_PORT PORTX . . . #define SPI_CS7_PORT PORTX and SPI direction for the above asigned port(s) as: #define SPI_CS0_DDR DDRX . . . #define SPI_CS7_DDR DDRX and SPI pin(s) used for chip select as: #define SPI_CS0 PXn . . . #define SPI_CS7 PXn ================================================================================================*/ #include "hardware.h" #include #include #include "spi.h" /*================================================================================================ Functions ================================================================================================*/ /*================================================================================================ spiWrite Description: Write data to SPI. Input: data to send Return: - ------------------------------------------------------------------------------------------------*/ void spiWrite(uint8_t data) { SPDR = data; while(!(SPSR & (1<