From b0d8f22f3492fbb3f6dc0e8026e63c803af59007 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Sat, 17 Oct 2015 15:40:51 +0200 Subject: Complete commit of current work --- doc/spi.html | 13 +++++++++++++ doc/spi.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 doc/spi.html create mode 100644 doc/spi.md (limited to 'doc') diff --git a/doc/spi.html b/doc/spi.html new file mode 100644 index 0000000..e81637f --- /dev/null +++ b/doc/spi.html @@ -0,0 +1,13 @@ +

Serial peripheral interface

+ +

spi_init

+ +
static inline void spi_init(enum spiMode mode)
+
+ +

Initializes SPI interface. +Parameters: + mode - Specify mode of SPI interface

+ +

NOTE: Global interrupt must be enabled for right function of SPI. + { SREG |= _BV(7) }

diff --git a/doc/spi.md b/doc/spi.md new file mode 100644 index 0000000..3237882 --- /dev/null +++ b/doc/spi.md @@ -0,0 +1,60 @@ +Serial peripheral interface +--------------------------- + +## Functions +### spi_init +```C +static inline void spi_init(enum spiMode mode) +``` +Initializes SPI interface. +Parameters: + mode - Specify mode of SPI interface + +NOTE: Global interrupt must be enabled for right function of SPI. + { SREG |= _BV(7) } + +### spi_busy +```C +static inline int8_t spi_busy(void) +``` +Returns NULL when device is not busy. +When device is busy return values in non-zero. + +### spi_join +```C +static inline void spi_join(void) +``` +Blocks processor until device is not busy. + +### spi_send +```C +static inline uint8_t spi_send(uint8_t data) +``` +Swap bytes with slave over SPI. +This function blocks execution until device isn't busy (transfer completed). +WARNING: Invoke this only when interface is initialized in MASTER mode. + +### spi_transfer +```C +static inline void spi_transfer(uint8_t data) +``` +Transfer byte to slave over SPI. +This function isn't blocking execution until transfer is complete. +Always call spi_join before this function when called outside of spi_receive(). +WARNING: Invoke this only when interface is initialized in MASTER mode. + +### spi_expose +```C +static inline void spi_expose(uint8_t data) +``` +Expose data for next master request. +Please don't use this when device is busy. +Best place to call this is spi_receive(). +WARNING: Invoke this only when interface is initialized in SLAVE mode. + +## Function pointer spi_receive +```C +extern void (*spi_receive)(uint8_t data) +``` +This function is called every time transfer is finished. +And until return from this function interrupts are disabled. -- cgit v1.2.3