12 #ifndef __SPI_SFRS_H__
13 #define __SPI_SFRS_H__
57 #define SPI_SFRS ((__IO SPI_SFRS_t *) (SDIO_BASE + 0x1C))
59 #define E_SPI_CLOCK_DIV2 0
60 #define E_SPI_CLOCK_DIV4 1
61 #define E_SPI_CLOCK_DIV8 0
62 #define E_SPI_CLOCK_DIV16 2
63 #define E_SPI_CLOCK_DIV32 3
64 #define E_SPI_CLOCK_DIV64 1
65 #define E_SPI_CLOCK_DIV128 2
66 #define E_SPI_CLOCK_DIV256 3
67 #define E_SPI_CLOCK_DIV512 0
68 #define E_SPI_CLOCK_DIV1024 1
69 #define E_SPI_CLOCK_DIV2048 2
70 #define E_SPI_CLOCK_DIV4096 3
72 #define E_SPI_CLOCK_EXT_DIV2 0
73 #define E_SPI_CLOCK_EXT_DIV4 0
74 #define E_SPI_CLOCK_EXT_DIV8 1
75 #define E_SPI_CLOCK_EXT_DIV16 0
76 #define E_SPI_CLOCK_EXT_DIV32 0
77 #define E_SPI_CLOCK_EXT_DIV64 1
78 #define E_SPI_CLOCK_EXT_DIV128 1
79 #define E_SPI_CLOCK_EXT_DIV256 1
80 #define E_SPI_CLOCK_EXT_DIV512 2
81 #define E_SPI_CLOCK_EXT_DIV1024 2
82 #define E_SPI_CLOCK_EXT_DIV2048 2
83 #define E_SPI_CLOCK_EXT_DIV4096 2
85 #define E_SPI_CLOCK_PHASE0 0
86 #define E_SPI_CLOCK_PHASE1 1
88 #define E_SPI_CLOCK_POLARITY0 0
89 #define E_SPI_CLOCK_POLARITY1 1
91 #define E_SPI_STATUS_INTERRUPT ()uint8_t) (1<<7))
92 #define E_SPI_STATUS_WRITE_COLLISIION ((uint8_t) (1<<6))
93 #define E_SPI_STATUS_TX_FIFO_FULL ((uint8_t) (1<<3))
94 #define E_SPI_STATUS_TX_FIFO_EMPTY ((uint8_t) (1<<2))
95 #define E_SPI_STATUS_RX_FIFO_FULL ((uint8_t) (1<<1))
96 #define E_SPI_STATUS_RX_FIFO_EMPTY ((uint8_t) (1<<0))
98 #define E_SPI_INT_DELAY_COUNT0 0
99 #define E_SPI_INT_DELAY_COUNT1 1
100 #define E_SPI_INT_DELAY_COUNT2 2
101 #define E_SPI_INT_DELAY_COUNT3 3
static __INLINE void f_SPI_ClearIRQ(void)
Clear SPI interrupt flag.
Definition: spi_sfrs.h:206
static __INLINE void f_SPI_IRQEnable(void)
Enable SPI interrupt.
Definition: spi_sfrs.h:166
uint8_t SPSR
Definition: spi_sfrs.h:40
static __INLINE uint8_t f_SPI_TxFIFOFull(void)
Check if transnmitter FIFO buffer full.
Definition: spi_sfrs.h:216
static __INLINE uint8_t f_SPI_TxFIFOEmpty(void)
Check if transnmitter FIFO buffer empty.
Definition: spi_sfrs.h:226
static __INLINE void f_SPI_SetPolarity(uint8_t Polarity)
Set SPI Polarity.
Definition: spi_sfrs.h:126
static __INLINE void f_SPI_IRQDelay(uint8_t cnt)
Set SPI interrupt delay cycles.
Definition: spi_sfrs.h:142
#define SPI_SFRS
The starting address of SPI SFRS.
Definition: spi_sfrs.h:57
A structure to represent Special Function Registers for SPI.
Definition: spi_sfrs.h:18
static __INLINE void f_SPI_SetMode(uint8_t mode)
Set SPI mode.
Definition: spi_sfrs.h:134
static __INLINE void f_SPI_Disable(void)
Disable SPI hardware module.
Definition: spi_sfrs.h:158
uint8_t SPDR
Definition: spi_sfrs.h:42
static __INLINE uint8_t f_SPI_GetStatus(void)
Get SPI status.
Definition: spi_sfrs.h:198
static __INLINE void f_SPI_ClockDiv(uint8_t div, uint8_t ext_div)
Set SPI clock divider.
Definition: spi_sfrs.h:109
uint8_t SPCR
Definition: spi_sfrs.h:28
static __INLINE uint8_t f_SPI_RxFIFOEmpty(void)
Check if receiver FIFO buffer empty.
Definition: spi_sfrs.h:246
static __INLINE uint8_t f_SPI_RxFIFOFull(void)
Check if receiver FIFO buffer full.
Definition: spi_sfrs.h:236
static __INLINE void f_SPI_WriteData(uint8_t data)
Write a byte to SPI data register.
Definition: spi_sfrs.h:190
uint8_t SPER
Definition: spi_sfrs.h:50
static __INLINE void f_SPI_Enable(void)
Enable SPI hardware module.
Definition: spi_sfrs.h:150
static __INLINE uint8_t f_SPI_ReadData(void)
Read a byte from SPI data register.
Definition: spi_sfrs.h:182
static __INLINE void f_SPI_SetPhase(uint8_t phase)
Set SPI phase.
Definition: spi_sfrs.h:118
static __INLINE void f_SPI_IRQDisable(void)
Disable SPI interrupt.
Definition: spi_sfrs.h:174