#ifndef KUNGFU8_SPI_H_
#define KUNGFU8_SPI_H_


/* SSCI1控制寄存器0:SSCI1CTL0 --------------------------------------------------------*/

/*SSCI1CTL0: SSCI1MOD<3:0>--------------------------------------------------------*/
#define 	SPI_Master_Mode_SCLK_Div4					(0x00) /*!< 0B0000 0000  SPI 主控模式,时钟 = 工作时钟/4*/
#define 	SPI_Master_Mode_SCLK_Div16					(0x01) /*!< 0B0000 0001  SPI 主控模式,时钟 = 工作时钟/16*/
#define 	SPI_Master_Mode_SCLK_Div64					(0x02) /*!< 0B0000 0010  SPI 主控模式,时钟 = 工作时钟/64*/
#define 	SPI_Master_Mode_TIM2_Div2					(0x03) /*!< 0B0000 0011  SPI 主控模式,时钟 = T2输出/2*/

#define 	SPI_Slave_Mode_SCK_SS						(0x04) /*!< 0B0000 0100	  SPI 从动模式,时钟 =  SCK 引脚,使能 ss引脚控制*/
#define 	SPI_Slave_Mode_SCK							(0x05) /*!< 0B0000 0101   SPI 从动模式,时钟 =  SCK 引脚,禁止 ss引脚控制,ss 可作为I/O 引脚使用*/


//########################## 工具适应处理
#define  BANKSEL_Read_SDI()   	__asm  	BANKSEL _SSCI1BUFR  __endasm;
#define  Read_NoUse_SDI() 		__asm   MOV R0, _SSCI1BUFR  __endasm;

//#################### 主机部分声明

void SPI_SendData(uint8 Sendbyte);
uint8 SPI_ReceiveData(void);
uint8 SPI_SendAndReceive_Data(uint8 Sendbyte);


void SPI_Master_Mode_Configuration(void);

//#################### 从机部分声明
void SPI_Slave_Mode_Configuration(void);


#endif /* KUNGFU8_SPI_H_ */
