X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/09d2be0dc1630b2ae2403d555c0360f1c4379322..0da99447d3e88e83f9977501bee56af5c7aa56c0:/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h?ds=sidebyside diff --git a/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h b/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h index fe108e500..24d341f03 100644 --- a/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h +++ b/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h @@ -29,7 +29,7 @@ */ /** \file - * \brief Serial USART Master SPI Mode Peripheral Driver (XMEGA) + * \brief Master SPI Mode Serial USART Peripheral Driver (XMEGA) * * On-chip Master SPI mode USART driver for the XMEGA AVR microcontrollers. * @@ -38,7 +38,7 @@ */ /** \ingroup Group_SerialSPI - * \defgroup Group_SerialSPI_AVR8 Serial USART Peripheral Driver (AVR8) + * \defgroup Group_SerialSPI_AVR8 Master SPI Mode Serial USART Peripheral Driver (AVR8) * * \section Sec_ModDescription Module Description * On-chip serial USART driver for the 8-bit AVR8 microcontrollers. @@ -53,17 +53,17 @@ * \code * // Initialize the Master SPI mode USART driver before first use, with 1Mbit baud * SerialSPI_Init((USART_SPI_SCK_LEAD_RISING | SPI_SAMPLE_LEADING | SPI_ORDER_MSB_FIRST), 1000000); - * + * * // Send several bytes, ignoring the returned data * SerialSPI_SendByte(0x01); * SerialSPI_SendByte(0x02); * SerialSPI_SendByte(0x03); - * + * * // Receive several bytes, sending a dummy 0x00 byte each time * uint8_t Byte1 = SerialSPI_ReceiveByte(); * uint8_t Byte2 = SerialSPI_ReceiveByte(); * uint8_t Byte3 = SerialSPI_ReceiveByte(); - * + * * // Send a byte, and store the received byte from the same transaction * uint8_t ResponseByte = SerialSPI_TransferByte(0xDC); * \endcode @@ -98,28 +98,28 @@ /* Macros: */ /** \name SPI SCK Polarity Configuration Masks */ //@{ - /** SPI clock polarity mask for \c SPI_Init(). Indicates that the SCK should lead on the rising edge. */ + /** SPI clock polarity mask for \ref SPI_Init(). Indicates that the SCK should lead on the rising edge. */ #define USART_SPI_SCK_LEAD_RISING (0 << UCPOL) - /** SPI clock polarity mask for \c SPI_Init(). Indicates that the SCK should lead on the falling edge. */ + /** SPI clock polarity mask for \ref SPI_Init(). Indicates that the SCK should lead on the falling edge. */ #define USART_SPI_SCK_LEAD_FALLING (1 << UCPOL) //@} /** \name SPI Sample Edge Configuration Masks */ //@{ - /** SPI data sample mode mask for \c SerialSPI_Init(). Indicates that the data should sampled on the leading edge. */ + /** SPI data sample mode mask for \ref SerialSPI_Init(). Indicates that the data should sampled on the leading edge. */ #define USART_SPI_SAMPLE_LEADING (0 << UPCHA) - /** SPI data sample mode mask for \c SerialSPI_Init(). Indicates that the data should be sampled on the trailing edge. */ + /** SPI data sample mode mask for \ref SerialSPI_Init(). Indicates that the data should be sampled on the trailing edge. */ #define USART_SPI_SAMPLE_TRAILING (1 << UPCHA) //@} /** \name SPI Data Ordering Configuration Masks */ //@{ - /** SPI data order mask for \c Serial_SPIInit(). Indicates that data should be shifted out MSB first. */ + /** SPI data order mask for \ref SerialSPI_Init(). Indicates that data should be shifted out MSB first. */ #define USART_SPI_ORDER_MSB_FIRST (0 << UDORD) - /** SPI data order mask for \c Serial_SPIInit(). Indicates that data should be shifted out LSB first. */ + /** SPI data order mask for \ref SerialSPI_Init(). Indicates that data should be shifted out LSB first. */ #define USART_SPI_ORDER_LSB_FIRST (1 << UDORD) //@} @@ -176,9 +176,7 @@ */ static inline void SerialSPI_SendByte(const uint8_t DataByte) { - UDR1 = DataByte; - while (!(UCSR1A & (1 << TXC1))); - UCSR1A = (1 << TXC1); + SerialSPI_TransferByte(DataByte); } /** Sends a dummy byte through the USART SPI interface, blocking until the transfer is complete. The response @@ -188,10 +186,7 @@ */ static inline uint8_t SerialSPI_ReceiveByte(void) { - UDR1 = 0; - while (!(UCSR1A & (1 << TXC1))); - UCSR1A = (1 << TXC1); - return UDR1; + return SerialSPI_TransferByte(0); } /* Disable C linkage for C++ Compilers: */