X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/5a4def747897c1c6ffbe465506d846c7c686d3e9..82fa9149d705b70fc6d0e53e3d164fe138ce9a8b:/LUFA/Drivers/Peripheral/SPI.h diff --git a/LUFA/Drivers/Peripheral/SPI.h b/LUFA/Drivers/Peripheral/SPI.h index 3858acabc..4e1fd09ce 100644 --- a/LUFA/Drivers/Peripheral/SPI.h +++ b/LUFA/Drivers/Peripheral/SPI.h @@ -3,7 +3,7 @@ Copyright (C) Dean Camera, 2010. dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com + www.lufa-lib.org */ /* @@ -67,6 +67,8 @@ /* Public Interface - May be used in end-application: */ /* Macros: */ + /** \name SPI Prescaler Configuration Masks */ + //@{ /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 2. */ #define SPI_SPEED_FCPU_DIV_2 SPI_USE_DOUBLESPEED @@ -87,31 +89,44 @@ /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 128. */ #define SPI_SPEED_FCPU_DIV_128 ((1 << SPR1) | (1 << SPR0)) + //@} + /** \name SPI SCK Polarity Configuration Masks */ + //@{ /** SPI clock polarity mask for SPI_Init(). Indicates that the SCK should lead on the rising edge. */ #define SPI_SCK_LEAD_RISING (0 << CPOL) /** SPI clock polarity mask for SPI_Init(). Indicates that the SCK should lead on the falling edge. */ #define SPI_SCK_LEAD_FALLING (1 << CPOL) + //@} + /** \name SPI Sample Edge Configuration Masks */ + //@{ /** SPI data sample mode mask for SPI_Init(). Indicates that the data should sampled on the leading edge. */ #define SPI_SAMPLE_LEADING (0 << CPHA) /** SPI data sample mode mask for SPI_Init(). Indicates that the data should be sampled on the trailing edge. */ #define SPI_SAMPLE_TRAILING (1 << CPHA) - + //@} + + /** \name SPI Data Ordering Configuration Masks */ + //@{ /** SPI data order mask for SPI_Init(). Indicates that data should be shifted out MSB first. */ #define SPI_ORDER_MSB_FIRST (0 << DORD) /** SPI data order mask for SPI_Init(). Indicates that data should be shifted out MSB first. */ #define SPI_ORDER_LSB_FIRST (1 << DORD) - + //@} + + /** \name SPI Mode Configuration Masks */ + //@{ /** SPI mode mask for SPI_Init(). Indicates that the SPI interface should be initialized into slave mode. */ #define SPI_MODE_SLAVE (0 << MSTR) /** SPI mode mask for SPI_Init(). Indicates that the SPI interface should be initialized into master mode. */ #define SPI_MODE_MASTER (1 << MSTR) - + //@} + /* Inline Functions: */ /** Initialises the SPI subsystem, ready for transfers. Must be called before calling any other * SPI routines. @@ -121,9 +136,9 @@ */ static inline void SPI_Init(const uint8_t SPIOptions) { - DDRB |= ((1 << 1) | (1 << 2)); - DDRB &= ((1 << 0) | (1 << 3)); - PORTB |= ((1 << 0) | (1 << 3)); + DDRB |= ((1 << 1) | (1 << 2)); + DDRB &= ~((1 << 0) | (1 << 3)); + PORTB |= ((1 << 0) | (1 << 3)); SPCR = ((1 << SPE) | SPIOptions);