fesc_5554_fspi.c

来自「MPC5554处理器的初始化例程」· C语言 代码 · 共 58 行

C
58
字号
/*************************************************************************/
/* FUNCTION     :         general FPGA-SPI Operations                    */
/* PURPOSE      :                                                        */
/* INPUT NOTES  :                                                        */
/* RETURN NOTES : None                                                   */
/* WARNING      : None                                                   */
/*************************************************************************/
void init_FPGA_SPI(void)
{ uint8_t i; 
	for(i=0;i<8;i++)
	{
     SXC.CH[i].SXC_CR.B.TCFC = 1;
     SXC.CH[i].SXC_CR.B.RDFC = 1;
  }
  for(i=0;i<6;i++)      SXC.CH[i].SPI_BAUD_REG.B.BAUD = 25;  //  120MHz/(32*25) = 150Kbps
  SXC.CH[6].SPI_BAUD_REG.B.BAUD = 5; //  120MHz/(32*5) = 750Kbps
  SXC.CH[7].SPI_BAUD_REG.B.BAUD = 5;   
}

uint8_t  FPGA_SPI_ready_send(uint8_t ch)
{
	if(SXC.CH[ch].SXC_SR.B.BUSY==0) return(1);
	else return(0);
}
uint8_t  FPGA_SPI_ready_read(uint8_t ch)
{
	if(SXC.CH[ch].SXC_SR.B.RDF==1) return(1);
	else return(0);
}

void     FPGA_SPI_Send(uint8_t ch,uint8_t TxDATA)
{    SXC.CH[ch].SXC_CR.B.TCFC = 1;
	   SXC.CH[ch].SPI_HOST_DATA_REG.B.DATA = TxDATA;
     SXC.CH[ch].SXC_CR.B.SEND = 1;
}
uint8_t  FPGA_SPI_Read(uint8_t ch)
{
     SXC.CH[ch].SXC_CR.B.RDFC = 1;
     return(SXC.CH[ch].SPI_HOST_DATA_REG.B.DATA);	
}


uint8_t  FPGA_SPI_Swap(uint8_t ch,uint8_t TxDATA)
{  
		if((SXC.CH[ch].SXC_SR.B.BUSY == 0) && (SXC.CH[3].SXC_SR.B.TCF == 0))
     SXC.CH[ch].SPI_HOST_DATA_REG.B.DATA = TxDATA;
     SXC.CH[ch].SXC_CR.B.SEND = 1;
    while(SXC.CH[ch].SXC_SR.B.BUSY == 1){}
     SXC.CH[ch].SXC_CR.B.TCFC = 1;
     SXC.CH[ch].SXC_CR.B.RDFC = 1;
     return(SXC.CH[ch].SPI_HOST_DATA_REG.B.DATA);	
}





⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?