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;
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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);
}
Ejemplo n.º 5
0
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;
}
Ejemplo n.º 6
0
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);
}
Ejemplo n.º 7
0
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);
}
Ejemplo n.º 8
0
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);
}