diff options
| -rw-r--r-- | doc/spi.md | 33 | 
1 files changed, 21 insertions, 12 deletions
| @@ -1,23 +1,23 @@  Serial peripheral interface  --------------------------- +This interface is link to MOSI and MISO pins. Also SS pin is used when slave mode initialized.  ## Functions  ### spi_init  ```C  static inline void spi_init(enum spiMode mode)  ``` -Initializes SPI interface. -Parameters: -    mode - Specify mode of SPI interface - +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. +Returns NULL when device is not busy.    When device is busy return values in non-zero.  ### spi_join     @@ -30,17 +30,17 @@ Blocks processor until device is not busy.  ```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). +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(). +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 @@ -49,7 +49,7 @@ 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(). +Best place to call this is spi_receive().    WARNING: Invoke this only when interface is initialized in SLAVE mode.  ## Function pointer spi_receive @@ -58,3 +58,12 @@ 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. + +## Enum spiMode +```C +enum spiMode { +    SPI_MODE_MASTER, +    SPI_MODE_SLAVE +}; +``` +This is used as parameter for spi_init function. | 
