Example #1
0
/** \brief	Read one byte from a sensor register
*
* Read one byte from a sensor register
*
* \param[in]       reg
*     Register address
* \param[in]       *pVal
*     Pointer to variable to put read out value
*/
void accReadReg(uint8 reg, uint8 *pVal)
{
    CS = CS_ENABLED;
    WAIT_1_3US(2);
    spiWriteByte(reg);
    spiReadByte(pVal, 0xFF);
    CS = CS_DISABLED;
}
Example #2
0
u8 rfIsRXFIFOEmpty( void )
{
    u8 ucStatus;

    RF_CS_LOW;
    spiWriteByte( &pygmyRFSPI, RF_REG_FIFOSTATUS );
    ucStatus = spiReadByte( &pygmyRFSPI ) & BIT0;
    RF_CS_HIGH;

    return( ucStatus );
    //return( spiGetChar( &pygmyRFSPI, RF_REG_FIFOSTATUS ) & BIT0 );
}
Example #3
0
u8 rfGetRXPayloadLen( void )
{
    u8 ucByte;

    RF_CS_LOW;
    spiWriteByte( &pygmyRFSPI, RF_RX_LEN );
    ucByte = spiReadByte( &pygmyRFSPI  );
    RF_CS_HIGH;
    
    return( ucByte ); 
    //return( spiGetChar( &pygmyRFSPI, RF_RX_LEN ) );
}
Example #4
0
u8 rfGetStatus( void )
{
    u8 ucStatus;

    RF_CS_LOW;
    //pygmyRFSPI.PortCS->BRR = pygmyRFSPI.PinCS;
    ucStatus = spiReadByte( &pygmyRFSPI );
    //pygmyRFSPI.PortCS->BSRR = pygmyRFSPI.PinCS;
    RF_CS_HIGH;

    return( ucStatus );
}
Example #5
0
//--------------------------------------------------------------------------------------------
//-----------------------------------------RF Receive-----------------------------------------
void rfRX( void )
{
    u8 i, ucLen, ucStatus, ucPipe, *ucBuffer, ucPayload[ 32 ];
    
    PYGMY_WATCHDOG_REFRESH;
    ucBuffer = ucPayload;
    ucStatus = rfGetStatus();
    ucPipe = ( ucStatus & 0x0E ) >> 1;
    #ifdef __PYGMY_DEBUG_SOCKETS
        print( COM3, "\rRX IRQ" );
    #endif // __PYGMY_DEBUG_SOCKETS
    if( ucStatus & BIT6 ){
        // Payload Received
        #ifdef __PYGMY_DEBUG_SOCKETS
            print( COM3, "\rReceived Payload" );
        #endif // __PYGMY_DEBUG_SOCKETS
        if( ucPipe == 7 ){
            #ifdef __PYGMY_DEBUG_SOCKETS
                print( COM3, "\rPipe Error" );
            #endif // __PYGMY_DEBUG_SOCKETS
            return;
        } // if
        ucLen = rfGetRXPayloadLen( ); // Payloads are a maximum of 32 bytes
        #ifdef __PYGMY_DEBUG_SOCKETS
            print( COM3, "\r%d Bytes Received\r", ucLen );
        #endif // __PYGMY_DEBUG_SOCKETS
        // Now load payload into buffer
        RF_CS_LOW;
        spiWriteByte( &pygmyRFSPI, RF_RX_PAYLOAD );
        for( i = 0; i < ucLen; i++ ){
            ucBuffer[ i ] = spiReadByte( &pygmyRFSPI );
            //delay( 1 );
            #ifdef __PYGMY_DEBUG_SOCKETS
                print( COM3, " %X", ucBuffer[ i ] );
                //print( COM3, "\rSending Payload" );
            #endif // __PYGMY_DEBUG_SOCKETS
            
        } // if
        RF_CS_HIGH;
        //spiGetBuffer( &pygmyRFSPI, RF_RX_PAYLOAD, ucBuffer, ucLen );
        #ifdef __PYGMY_DEBUG_SOCKETS
            print( COM3, "\rPassing to Handler" );
        #endif // __PYGMY_DEBUG_SOCKETS
        #ifdef __PYGMYSOCKETS
        socketHandler( ucBuffer );//&pygmyPacket );
        #endif
        rfClearStatus();
    } //if
    if( ucStatus & BIT5 ){
        rfSetRX();
    } // if 
}
Example #6
0
u8 rfGetSignalQuality( void )
{
    u8 ucSignalQuality;

    //spiPutChar( &pygmyRFSPI, RF_READ|RF_REG_OBSERVETX,  
    //RF_CS_LOW;
    pygmyRFSPI.PortCS->BRR = pygmyRFSPI.PinCS;
    spiWriteByte( &pygmyRFSPI, RF_READ|RF_REG_OBSERVETX );
    ucSignalQuality = 15 - ( RF_REG_OBSERVETX_ARCCNT & spiReadByte( &pygmyRFSPI ) ); 
    pygmyRFSPI.PortCS->BSRR = pygmyRFSPI.PinCS;
    //RF_CS_HIGH;
    
    rfClearStatus();
    
    return( ucSignalQuality );
}