📄 fesc_5554_fspi.c
字号:
/*************************************************************************/
/* 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -