uint8_t SPI_SendReceive(uint8_t aDevice, uint8_t *aTXData, uint32_t aTXLength, uint8_t *aRXData) { uint16_t timeout; G_CSI21_SendingData = 1; G_CSI21_ReceivingData = 1; SPI_CS_Start(aDevice); if(aDevice == SPI_SD) delay_ms(1); R_CSI21_Send_Receive(aTXData, aTXLength, aRXData); timeout = 0; while(timeout < 1000) { if(!(G_CSI21_SendingData || G_CSI21_ReceivingData)) break; timeout++; } SPI_CS_End(aDevice); if(timeout >= 1000) return 0; else return 1; }
void SPI_Receive(uint8_t aDevice, uint8_t *aData, uint32_t aLength) { uint8_t noTXData = 0xFF; G_SPI_SendingData = 0; G_SPI_ReceivingData = 1; SPI_CS_Start(aDevice); R_CSI10_Send_Receive(&noTXData,1 , aData,aLength ); while(G_SPI_ReceivingData); SPI_CS_End(aDevice); }
uint8_t WIFI_ReceiveByte(unsigned char* buf) { uint8_t WIFI_Idle_Char; if((PTB->PDIR & (0x800))) { WIFI_Idle_Char = SPI_CHAR_IDLE; SPI_CS_Start(SPI_WIFI); SPI1_SendReceive(SPI_WIFI, (uint8_t *)&WIFI_Idle_Char, 1, (uint8_t *)buf); SPI_CS_End(SPI_WIFI); return true; } else return false; }
void SPI_Send(uint8_t aDevice, uint8_t *aData, uint32_t aLength) { uint8_t noRXData; G_CSI21_SendingData = 1; G_CSI21_ReceivingData = 0; SPI_CS_Start(aDevice); R_CSI21_Send_Receive(aData, aLength, &noRXData); while(G_CSI21_SendingData); SPI_CS_End(aDevice); }
uint8_t WIFI_ReceiveByte(char* buf) { uint8_t WIFI_Idle_Char; //G_WIFI_BufferIndex = 0; if((P7 & (1<<7))) { WIFI_Idle_Char = SPI_CHAR_IDLE; SPI_CS_Start(SPI_WIFI); SPI_SendReceive(SPI_WIFI, (uint8_t *)&WIFI_Idle_Char, 1, (uint8_t *)buf); SPI_CS_End(SPI_WIFI); return true; } else return false; }
void SPI_SendReceive(uint8_t aDevice, uint8_t *aTXData, uint32_t aTXLength, uint8_t *aRXData) { volatile uint16_t d; G_SPI_SendingData = 1; G_SPI_ReceivingData = 1; SPI_CS_Start(aDevice); //for (d=100; d>0; d--); // delay R_CSI10_Send_Receive(aTXData, aTXLength, aRXData,aTXLength); while(G_SPI_SendingData || G_SPI_ReceivingData); SPI_CS_End(aDevice); }
void SPI_Send(uint8_t aDevice, uint8_t *aData, uint32_t aLength) { volatile uint16_t d; uint8_t noRXData; G_SPI_SendingData = 1; G_SPI_ReceivingData = 0; SPI_CS_Start(aDevice); //for (d=100; d>0; d--);// delay R_CSI10_Send_Receive(aData, aLength, &noRXData,0); while(G_SPI_SendingData); SPI_CS_End(aDevice); }
void SPI_Send(uint8_t aDevice, uint8_t *aData, uint32_t aLength) { volatile uint16_t d; uint8_t noRXData; G_SPI_SendingData = 1; G_SPI_ReceivingData = 0; SPI_CS_Start(aDevice); for (d=100; d>0; d--) // delay ; CSI_SEND_RECEIVE(aData, aLength, &noRXData); while(G_SPI_SendingData); SPI_CS_End(aDevice); }